Глеб Михайлов - анализ данных ★Анализ данных, дата саенс, python, SQL ★Делюсь практическими наработками и лайфхаками ★Занимаюсь анализом данных с 2011 года и преподаю с 2018
Добро пожаловать на мой официальный RU-vid - канал! Я аналитик и дата саент-специалист, работал в Альфе, Сбере, Ростелекоме. C 2019 работаю наставником в Яндекс.Практикуме, веду вебинары по анализу данных и data science. У меня также есть курсы на Udemy и Stepik.
Я самоучка - учился на Udemy, Coursera, Stepik. Читал книги, смотрел RU-vid. Я знаю каково это осваивать новую профессию самому, и поэтому, я учу максимально просто, без заумствований.
Заходите, смотрите и подписывайтесь на канал!
Я в интернете: ➧ Telegram - t.me/mikhaylovgleb ➧ Мои курсы на Stepik - stepik.org/users/17151495 ➧ Мои курсы на Udemy - udemy.com/user/gleb-mikhaylov ➧ GitHub - github.com/glebmikha ➧ Twitter - twitter.com/glebmikha ➧ Почта - gm.mikhailov@gmail.com
Всем привет. В задаче про русскую рулетку функции проще реализовать с помощью deque. Метод rotate() как раз подходит для барабана револьвера: from collections import deque chamber = deque([1,1,0,0,0,0]) def one_turn(chamber): return chamber.rotate() def spin_chamber(chamber): turns = np.random.randint(1, 7) return chamber.rotate(turns)
мда..какая оказалась простая херня )) Но попробуй всё вот так легко решить, тут конечно опыт нужен. Лично я даже и не догадался как это сделать. Возникла идея список скопировать, копию сдвигать по одному элементу и отнимать от изначального. Но по моему это дичатина. "Во всём нужна сноровка, закалка, тренировка"
Вы посмотрите на этого Глеба Михайлова. Сначала он Серёге Брину все сервера сломал, он бегал там с огнетушителем, тушил colab сервера. Теперь литкод сломается?
Глеб, привет. Отличная подача материала. Но все-таки для вкатунов (и для академичности контента курса) юзай тайп хинтинги для переменных, ну и пробелы после запятых согласно пепу. Не сочти за наезд ❤)
Нет, гораздо меньше). Где-то около полугода регулярных занятий. Мой курс на 4.5 месяца рассчитан, по кратчайшему пути ведет - если есть интерес, то заходи в бот в ссылке в описании, пообщаемся)
Не считаю себя программистом, но тоже сразу думал про поиск пары. Но я пайтон не знаю, можно сказать, думал, что есть уже отдельный метод поиска индекса в массиве по значению элемента, тогда и базу создавать не пришлось бы. Понятно, что на примитивном уровне это было бы тоже самое. Задача не сложная, приятно осознавать, что что-то можешь.))
У меня возник вопрос как у начинающего. В цикле был перебор i и num, получается что i будет принимать 2 числа - это сам элемент после перебора enumerate и его индекс? А как тогда индекс элемента из словаря db будет равен i, если i - это 2 числа? А в целом всё остальное понятно и интересно!
Спасибо за видео -команда pyenv version делает немного не то что вы объясняете, правильно вызывать так pyenv --version- Извиняюсь, это я не доглядел вместо versions вводил version, У вас все правильно!
Это из-за устройства хэш-сетов и хэш-таблиц. Доступ к любому элементу там осуществляется по значению хэш-функции для этого элемента. Направление и «лопату» я дал, дальше дело за вами, мой друг🤜🤛
более идеальное решение в ответах на литкоде - самый быстрый по времени ответ на эту задачу. контент там для эпилога к видео самое то! кто не смотрел рекомендую глянуть...
Перебор совсем тупой: зачем для j перебирать весь массив? Взял i и j перебираешь от i+1 до конца списка и т.д. и условие i==j уже не нужно. переборов меньше, время меньше
Да, тут можно так оптимизировать, но на сложность по времени это не повлияет, она все равно останется O(n**2). Я решил не писать эту оптимизацию, чтобы не отвлекать от решения со словарем
Потому что дополнительная память не выделяется и идёт работа только с входным массивом. Не создаются новые массивы, например. Переменные тоже считаются за выделение памяти, но обычно они выделяются фиксировано. Допустим я присвою x = 3 y = 4 z = 9 Получается затрат памяти О(3), но О большая "съедает" константу, а значит получается О(1) Дополнено: допустим О(2*n*log(n) + n) тоже будет O(2nlog(n)), потому что n*log(n) растёт быстрее и потом съедаем константу и получаем О(n*log(n))
В оценки эффективности не учитывается память, которую занимают входные данные. Учитывается только память, которая задействуется непосредственно для работы самого алгоритма.
Только для отсортированного массива! На LeetCode для него даже отдельную задачу сделали leetcode.com/problems/two-sum-ii-input-array-is-sorted/description/
Ты крутой) Для джунов, конечно, будет тяжеловато это все переварить, но для них и так куча туториалов в интернетах. Для людей около мидла же и темп и подача идеальны) То что нужно, спасибо!
В leetcode странно поломан таймер. На Python, JS, TS всегда рандмайзер - прыгает от 30% до 99%. Зато на Java почти всегда 0ms и beats 100% с тем же алгоритмом
А как начать работать с Google Colab для анализа данных? Лично я выбирал курсы по IT, чтобы освоить веб-разработку и рассматривал разные компании. В итоге выбрал Skypro и не пожалел, уже через несколько месяцев нашел работу))
Очень странная платформа, задача проходит 30 тестов, на 31 ошибка и ты не знаешь что там за кейс. Что делать? Обсуждений нет, подсказок нет. Они серьёзно ожидают что ты сможешь прикинуть из головы все возможные кейсы? С тем же успехом могли бы окошко с их нейро давать на странице и с ним пытаться решить.