Привет! С прошлой задачей разобрались во второй раз, в комментариях можно увидеть решение.
Переходим на следующий этап:
У всех все хорошо с обходом графа?
Сколько вариантов решения видите в этой задаче?
https://leetcode.com/problems/number-of-islands/description/
Кстати одна из типичных на собеседованиях, когда хотят проверить вас на графы. Есть много интерпретаций данной задачи, но все они об одном и том же.
Переходим на следующий этап:
У всех все хорошо с обходом графа?
Сколько вариантов решения видите в этой задаче?
https://leetcode.com/problems/number-of-islands/description/
Кстати одна из типичных на собеседованиях, когда хотят проверить вас на графы. Есть много интерпретаций данной задачи, но все они об одном и том же.
LeetCode
Number of Islands - LeetCode
Can you solve this real interview question? Number of Islands - Given an m x n 2D binary grid grid which represents a map of '1's (land) and '0's (water), return the number of islands.
An island is surrounded by water and is formed by connecting adjacent…
An island is surrounded by water and is formed by connecting adjacent…
❤3👏2👍1
Всем привет!
Сегодня будет мини вопрос из секции систем дизайна.
У нас есть БД с табличкой юзеров, у юзера есть такие параметры, как ФИО, нам надо добавить возраст. При этом нам говорят, что таблица с юзерами ооочень большая и в проде не может быть простоев, поэтому через alter table добавлять поле нельзя. Также говорят о том, что скорее всего нам надо будет добавлять в будущем ещё атрибуты юзера. Внимание вопрос, как это реализовать и какая схема БД должна быть?
Сегодня будет мини вопрос из секции систем дизайна.
У нас есть БД с табличкой юзеров, у юзера есть такие параметры, как ФИО, нам надо добавить возраст. При этом нам говорят, что таблица с юзерами ооочень большая и в проде не может быть простоев, поэтому через alter table добавлять поле нельзя. Также говорят о том, что скорее всего нам надо будет добавлять в будущем ещё атрибуты юзера. Внимание вопрос, как это реализовать и какая схема БД должна быть?
🔥3❤1👍1🤪1
Всем привет!
Почему я перестал писать посты с простыми темами по python?
Ответ:
Хэндбук от Яндекса: https://education.yandex.ru/handbook/python
Олег Молчанов: https://www.youtube.com/playlist?list=PLlWXhlUMyooaeSj8L8tVVbtUo0WCO4ORR
Кстати по рекурсии вот тут можно почитать https://education.yandex.ru/handbook/python/article/rekursiya-dekoratory-generatory
Почему я перестал писать посты с простыми темами по python?
Ответ:
Хэндбук от Яндекса: https://education.yandex.ru/handbook/python
Олег Молчанов: https://www.youtube.com/playlist?list=PLlWXhlUMyooaeSj8L8tVVbtUo0WCO4ORR
Кстати по рекурсии вот тут можно почитать https://education.yandex.ru/handbook/python/article/rekursiya-dekoratory-generatory
education.yandex.ru
Основы Python — Хендбук от Яндекс Образования
Хендбук по Python поможет овладеть основным синтаксисом и принципами языка. Кроме основных конструкций в учебнике рассмотрены разные подходы к программированию, реализованные на Python.
👍4❤3🙏2
Всем привет!
В нашем замечательном чатике мы решили пройти хэндбук по алгоритмам. Думаю, что вместе с обсуждениями будет интересно. Обсуждать можно тут в комментариях и в чате.
На этой неделе возьмем тестово Первые 3 раздела:
1. Введение
2. Алгоритмы и сложность
3. Техники проектирования алгоритмов
Там есть задачки, которые надо решить.
Если что-то непонятно, то приветствуются вопросы. В конце недели синканемся (скриншоты на стол), у кого какие успехи.
В перспективе, если зайдет алгоритмическая тема, то можно будет сверху этой базы ноложить литкод паттерны и идти покорять ВОТВАСЯ
В нашем замечательном чатике мы решили пройти хэндбук по алгоритмам. Думаю, что вместе с обсуждениями будет интересно. Обсуждать можно тут в комментариях и в чате.
На этой неделе возьмем тестово Первые 3 раздела:
1. Введение
2. Алгоритмы и сложность
3. Техники проектирования алгоритмов
Там есть задачки, которые надо решить.
Если что-то непонятно, то приветствуются вопросы. В конце недели синканемся (скриншоты на стол), у кого какие успехи.
В перспективе, если зайдет алгоритмическая тема, то можно будет сверху этой базы ноложить литкод паттерны и идти покорять ВОТВАСЯ
Telegram
Python Simple chat
You’ve been invited to join this group on Telegram.
❤4🙏2🔥1
Утренняя разминка:
Отметьте верное решение
d = {True: 8, 1.0: "хмм"} d[1] = 888
Отметьте верное решение
d = {True: 8, 1.0: "хмм"} d[1] = 888
Anonymous Quiz
19%
d == {True: 8, 1.0: "хмм", 1: 888}
30%
d == {True: 8, 1: 888}
7%
d == {1: 888}
6%
d == {True: 8}
11%
d == {True: 888}
28%
Нет верного ответа
👍1
Python Simple
Утренняя разминка:
Отметьте верное решение
d = {True: 8, 1.0: "хмм"} d[1] = 888
Отметьте верное решение
d = {True: 8, 1.0: "хмм"} d[1] = 888
Ответ заключается в том, что как и писали в комментариях 1.0 1 и True для словаря это один и тот же ключ.
Как видно из примера, какой ключ попадает первый в словарь, тот там и остается, но это не важно, т.к. когда мы достаем значение, то оно вернется по любому из этих 3-х ключей.
Кстати точно такая же история с 0 и False
{True: 8, 1.0: 3, 1: 888} # {True: 888}
{1:888, True: 8, 1.0: 3}. # {1: 3}
{1.0: 888, True: 8, 1: 3}. # {1.0: 3}Как видно из примера, какой ключ попадает первый в словарь, тот там и остается, но это не важно, т.к. когда мы достаем значение, то оно вернется по любому из этих 3-х ключей.
Кстати точно такая же история с 0 и False
❤4
This media is not supported in your browser
VIEW IN TELEGRAM
Чуть не забыл поздравить, с таким-то праздником!)
❤5👨💻3🤩2
Неоптимальный алгоритм:
"Неоптимальный алгоритм" - это мем, настолько старый, что уже перестаёт им быть. Это стандартный ответ от Яндекса, когда тебе не удаётся попасть на свой грейд или когда вам отказывают вовсе.
На сколько важны и что показывают алгоримтческие собеседования? Этим вопросом я часто задаюсь, особенно после того как сам стал их проводить.
Алгоритмы - это фундаментальная дисциплина, тут я соглашусь. Но у вас когда нибудь спрашивали теорию алгоритмов, кроме определения сложности?
Сегодня алгоритмическая секция, это лотерея. Вам дают несколько окололиткодовских задач или прямо с литкода и их надо решить. Может повезти и попадутся задачи, которые вы недавно решали из очередного топа, а может не повезти.
Знание алгоритмов определяется количеством решеных задач на литкоде: до 100 задач это джун, от 250 - мидл, от 500 - синьер 🤡
А какой у вас литкод грейд?)
"Неоптимальный алгоритм" - это мем, настолько старый, что уже перестаёт им быть. Это стандартный ответ от Яндекса, когда тебе не удаётся попасть на свой грейд или когда вам отказывают вовсе.
На сколько важны и что показывают алгоримтческие собеседования? Этим вопросом я часто задаюсь, особенно после того как сам стал их проводить.
Алгоритмы - это фундаментальная дисциплина, тут я соглашусь. Но у вас когда нибудь спрашивали теорию алгоритмов, кроме определения сложности?
Сегодня алгоритмическая секция, это лотерея. Вам дают несколько окололиткодовских задач или прямо с литкода и их надо решить. Может повезти и попадутся задачи, которые вы недавно решали из очередного топа, а может не повезти.
Знание алгоритмов определяется количеством решеных задач на литкоде: до 100 задач это джун, от 250 - мидл, от 500 - синьер 🤡
А какой у вас литкод грейд?)
👍4👀3❤1
Я тут стал повторять алгоритмы и в одном тематическом чатике скинули задачу с собеса, она мне показалась интересная. Ну и мы давно не решали задачи.
Тут важно подумать, какая будет сложность решения.
В массиве А хранятся цены на N предметов. Есть К купонов, которые уменьшают цену предмета на Х. Если применить t купонов на предмет с ценой а, то итоговая стоимость будет max(a - t*X, 0) (то есть купона не могут сделать стоимость товара отрицательной)
Необходимо вернуть минимальное кол-во денег, которое придется потратить, чтобы купить все предметы.
A = 8, 3, 10, 5, 13
K = 4
X = 7
result = 12
Обсуждаем в комментариях, и чтобы не пропускать комментарии, можно вступить в чатик
Тут важно подумать, какая будет сложность решения.
В массиве А хранятся цены на N предметов. Есть К купонов, которые уменьшают цену предмета на Х. Если применить t купонов на предмет с ценой а, то итоговая стоимость будет max(a - t*X, 0) (то есть купона не могут сделать стоимость товара отрицательной)
Необходимо вернуть минимальное кол-во денег, которое придется потратить, чтобы купить все предметы.
A = 8, 3, 10, 5, 13
K = 4
X = 7
result = 12
Обсуждаем в комментариях, и чтобы не пропускать комментарии, можно вступить в чатик
❤4👍3
Всем привет, пока готовлю чеклист для собеседования, вот очередной околособесовый вопрос)
Сколькими способами можно получить такой результат?
Counter может быть и классом и функцией и чем угодно, просто написал с большой буквы)
Сколькими способами можно получить такой результат?
c = Counter(5)
print(c()) # 6
print(c()) # 7
print(c()) # 8
Counter может быть и классом и функцией и чем угодно, просто написал с большой буквы)
👍2❤1
Я очень не люблю вопросы на собесе из разряда куча маленьких фрагментов кода и "Что выведет этот код?"
Особенно я не люблю, когда они не на знания, а на внимательности, приведу пример из недавнего
Ну мое рассуждение: передали список в ф-ию, сделали копию, потом добавили 10-ку, и вернули копию, а осталось прежним.
Тут понятно, что я как минимум знаю, как передаются списки в ф-ию, что срез создает копию и тд.
Но после собеса я заметил, что 10-ку прибавили не к копии, а к оригинальному списку. Чувствую себя обманутым. Что это показывает? Что я запутался в названиях переменных a, l, k, не заметил куда приаппендили 10-ку. Можно ли это считать минусом?
Очень похоже, как в универе когда препод давал листинг прожки, и чтобы мы его не копировали, а перепечатали, то заменял "с" латинскую на русскую и тп, немного напомнило)
Особенно я не люблю, когда они не на знания, а на внимательности, приведу пример из недавнего
def func(l):
k = l[:]
l.append(10)
return k
a = [1, 2, 3]
func(a)
print(a)
Ну мое рассуждение: передали список в ф-ию, сделали копию, потом добавили 10-ку, и вернули копию, а осталось прежним.
Тут понятно, что я как минимум знаю, как передаются списки в ф-ию, что срез создает копию и тд.
Но после собеса я заметил, что 10-ку прибавили не к копии, а к оригинальному списку. Чувствую себя обманутым. Что это показывает? Что я запутался в названиях переменных a, l, k, не заметил куда приаппендили 10-ку. Можно ли это считать минусом?
Очень похоже, как в универе когда препод давал листинг прожки, и чтобы мы его не копировали, а перепечатали, то заменял "с" латинскую на русскую и тп, немного напомнило)
🔥7❤3😁1
Вам когда-нибудь давали промокод на подписку после неудачного собеса в качестве комплимента?
Мне да)
Промокод на 3 мес. Надеюсь не будет подозрительно, если через 3 мес я ещё раз откликнусь за продлением подписки
Мне да)
😁8
Пришло время повторить, и признать ошибки в формулировках.
Что может быть ключом в словаре?
Ответы пишите в комментах, там и обсудим
Что может быть ключом в словаре?
Ответы пишите в комментах, там и обсудим
❤3🤔1
Forwarded from Young&&Yandex
Запускаем ускоренный набор на стажировку. Участвуйте в Intern Week Offer и получите заветный бэйдж яндексоида.
Направления:
– ML
– Аналитика
– Бэкенд С++, Python, Java.
Идеально для тех, кто прямо сейчас готов попробовать себя в разработке реального продукта или сервиса.
Задания, собеседования и все этапы отбора — прежние, но сам процесс быстрее.
Влетайте на стажировку в три шага:
Ждём вас.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Теоретический минимум для прохождения собеседования:
Python:
- Структуры данных (изменяемые, неизменяемые, знать сложность операций)
- Внутреннее устройство dict
- Хэш-таблицы (уметь реализовать свой хэшируемый объект, знать зачем нужен hash и eq)
- Декораторы (уметь написать свой декоратор, декоратор с параметрами, знать что такое замыкания, класс декоратор)
- ООП (знать MRO, что такое миксины, повторить SOLID, как в python реализованы наследование, полиморфизм, инкапсуляция, знать про интерфейсы и абстрактные классы, уметь написать)
- Менеджер контекста (уметь реализовать)
- Генераторы/Итераторы (знать разницу, уметь реализовать, знать про StopIteration и когда возвращается)
- Что такое yield, отличие от return
- Потоки/процессы/асинхронность/GIL (знать, как передается управление в каждом случае, когда что лучше использовать, знать про IO и CPU/bound задачи)
- Логирование (уметь написать, знать, уровни логирования, почему лучше при формировании сообщения писать %, а не f-строки)
- Тестирование (уметь написать пару тестов на pytest/unittest, знать про фикстуры, моки, TDD)
Базы данных:
- синтаксис запросов (GROUP BY, HAVING)
- join-ы
- explain
- индексы (знать, внутреннее устройство пары индексов, например b-tree и hash)
(остальное надо просто уметь объяснить на пальцах)
- ACID (уровни изоляции)
- Виды БД (привести примеры реляционных БД, key-value хранилищ, документо-ориентированные, и тд)
- Шардирование/Репликация/Партиционирование
Python:
- Структуры данных (изменяемые, неизменяемые, знать сложность операций)
- Внутреннее устройство dict
- Хэш-таблицы (уметь реализовать свой хэшируемый объект, знать зачем нужен hash и eq)
- Декораторы (уметь написать свой декоратор, декоратор с параметрами, знать что такое замыкания, класс декоратор)
- ООП (знать MRO, что такое миксины, повторить SOLID, как в python реализованы наследование, полиморфизм, инкапсуляция, знать про интерфейсы и абстрактные классы, уметь написать)
- Менеджер контекста (уметь реализовать)
- Генераторы/Итераторы (знать разницу, уметь реализовать, знать про StopIteration и когда возвращается)
- Что такое yield, отличие от return
- Потоки/процессы/асинхронность/GIL (знать, как передается управление в каждом случае, когда что лучше использовать, знать про IO и CPU/bound задачи)
- Логирование (уметь написать, знать, уровни логирования, почему лучше при формировании сообщения писать %, а не f-строки)
- Тестирование (уметь написать пару тестов на pytest/unittest, знать про фикстуры, моки, TDD)
Базы данных:
- синтаксис запросов (GROUP BY, HAVING)
- join-ы
- explain
- индексы (знать, внутреннее устройство пары индексов, например b-tree и hash)
(остальное надо просто уметь объяснить на пальцах)
- ACID (уровни изоляции)
- Виды БД (привести примеры реляционных БД, key-value хранилищ, документо-ориентированные, и тд)
- Шардирование/Репликация/Партиционирование
❤5👍2🙏1
Всем привет! Сегодня такой вопрос:
Какая разница между Iterable и Iterator?
Важно понимать разницу, часто думают, что это одно и то же, но это не так
Какая разница между Iterable и Iterator?
Важно понимать разницу, часто думают, что это одно и то же, но это не так
❤5
Субъективная оценка
Недавно у меня на собеседовании спросили, на сколько хорошо я знаю python и какую бы оценку поставил себе по 10-ти бальной шкале.
Я немного задумался, т.к. перед этим ставил оценку на Кинопоиске и 5 - это средняя, 6 - это выше средней, 7 - хорошо и тд, то есть 6 - это уже достаточно хорошая оценка. При этом я помню, как Страуструп говорил, что сам знает С++ на 8, а он его придумал. Как я могу поставить себе 8-ку, когда я даже не контрибьютил в core-python?
По моему я сказал 7 или 6.5. Но как синьер может сказать, что он знает основной ЯП даже на 7? В этом смысле эта оценка кажется низкой. Что от меня хотели услышать, не знаю даже. Если бы спросил про то, на какой грейд я хочу попасть, было бы проще ответить.
Оцените себя по 10-ти бальной шкале:
Недавно у меня на собеседовании спросили, на сколько хорошо я знаю python и какую бы оценку поставил себе по 10-ти бальной шкале.
Я немного задумался, т.к. перед этим ставил оценку на Кинопоиске и 5 - это средняя, 6 - это выше средней, 7 - хорошо и тд, то есть 6 - это уже достаточно хорошая оценка. При этом я помню, как Страуструп говорил, что сам знает С++ на 8, а он его придумал. Как я могу поставить себе 8-ку, когда я даже не контрибьютил в core-python?
По моему я сказал 7 или 6.5. Но как синьер может сказать, что он знает основной ЯП даже на 7? В этом смысле эта оценка кажется низкой. Что от меня хотели услышать, не знаю даже. Если бы спросил про то, на какой грейд я хочу попасть, было бы проще ответить.
Оцените себя по 10-ти бальной шкале:
❤3
Что-то давно мы с вами ничего не решали, предлагаю немного окунуться снова в алгоритмы и борьбу с leetcode
Задачка уровня мидиум, но ничего смертельно сложного в ней нет
1338. Reduce Array Size to The Half
У нас есть список с целыми числами, мы можем выбирать числа, для удаления из массива(удаляются все вхождения), наша задача разработать такой алгоитм, который за наименьшее количество чисел (которые мы удалим из массива) сделает длину массива меньше равной половине от изначальной или меньше.
Ссылочка на ориганльное условие: https://leetcode.com/problems/reduce-array-size-to-the-half/description/
Задача у нас стоит как всегда одна, засабмитить на литкоде, рассказать как делали, какие фишки применяли.
Вечером в воскресенье бахну разбор (если не забуду)!
Задачка уровня мидиум, но ничего смертельно сложного в ней нет
1338. Reduce Array Size to The Half
У нас есть список с целыми числами, мы можем выбирать числа, для удаления из массива(удаляются все вхождения), наша задача разработать такой алгоитм, который за наименьшее количество чисел (которые мы удалим из массива) сделает длину массива меньше равной половине от изначальной или меньше.
Ссылочка на ориганльное условие: https://leetcode.com/problems/reduce-array-size-to-the-half/description/
Задача у нас стоит как всегда одна, засабмитить на литкоде, рассказать как делали, какие фишки применяли.
Вечером в воскресенье бахну разбор (если не забуду)!
LeetCode
Reduce Array Size to The Half - LeetCode
Can you solve this real interview question? Reduce Array Size to The Half - You are given an integer array arr. You can choose a set of integers and remove all the occurrences of these integers in the array.
Return the minimum size of the set so that at…
Return the minimum size of the set so that at…
❤4👍1