30-дневный план подготовки к собеседованию DSA

30-дневный план подготовки к собеседованию DSA

21 октября 2022 г.

30-дневный план подготовки к собеседованию🎯

День 1: (массивы)

  • Сортировать массив из 0, 1, 2, не используя дополнительное пространство и не используя алгоритм сортировки.
  • Повторяющийся и пропущенный номер
  • Объединить два отсортированных массива без лишних пробелов
  • Алгоритм Кадане
  • Объединить перекрывающиеся подынтервалы
  • Найти дубликат в массиве целых чисел N+1.

День 2: (массивы)

  • Установить нулевые значения матрицы
  • Треугольник Паскаля
  • Следующая перестановка
  • Инверсия массива (с использованием сортировки слиянием)
  • Купить и продать акции
  • Повернуть матрицу

День 3: (массивы/математика)

  • Поиск в 2D-матрице
  • Пол(X,n)
  • Основной элемент (>N/2 раза)
  • Основной элемент (>N/3 раза)
  • Уникальные пути в сетке
  • Обратные пары (Leetcode)
  • Пройти головоломки от GFG (самостоятельный поиск)

День 4: (Хеширование)

  • 2 Суммарная задача
  • 4 Суммарная задача
  • Самая длинная последовательная последовательность
  • Самый большой подмассив с нулевой суммой
  • Подсчитать количество подмассивов с заданным XOR (это устраняет множество проблем)
  • Самая длинная подстрока без повторов

День 5: (связанный список)

  • Обратить связанный список
  • Найти середину LinkedList
  • Объединить два отсортированных связанных списка
  • Удалить N-й узел из задней части LinkedList
  • Удалить заданный узел, если узел задан. (0(1) решение)
  • Добавить два номера в LinkedList

День 6:

  • Найти точку пересечения Y LinkedList
  • Обнаружение цикла в связанном списке
  • Обратить LinkedList в группы размера k
  • Проверьте, является ли LinkedList палиндромом или нет.
  • Найти начальную точку цикла LinkedList
  • Сведение связанного списка
  • Поворот связанного списка

День 7: (2 указателя)

  • Клонировать связанный список со случайным и следующим указателем
  • 3 суммы
  • Улавливание дождевой воды.
  • Удалить дубликаты из отсортированного массива
  • Максимум последовательных

День8: (Жадность)

  • N собрание в одной комнате
  • Минимальное количество платформ, необходимое для железной дороги
  • Проблема последовательности выполнения заданий
  • Дробная задача о рюкзаке
  • Жадный алгоритм поиска минимального количества монет
  • Выбор вида деятельности (то же самое, что N собраний в одной комнате)

День 9 (рекурсия):

  • Суммы подмножества
  • Подмножество II
  • Сумма комбинаций-
  • Сумма комбинаций
  • Разбиение на палиндромы
  • K-я последовательность перестановок

День 10: (рекурсия и возврат)

  • Вывести все перестановки строки/массива
  • Задача N ферзей
  • Решение судоку
  • M Раскрашивание.
  • Крыса в лабиринте
  • Разрыв слова -> печатать всеми способами

Day11 : (Двоичный поиск)

  • N-й корень целого числа (используйте двоичный поиск) (квадратный корень, кубический корень, ..)
  • Медиана матрицы
  • Найти элемент, который появляется один раз в отсортированном массиве, а оставшийся элемент появляется дважды (бинарный поиск)
  • Поиск элемента в отсортированном и повернутом массиве/нахождение опорной точки, в которой он повернут
  • Медиана двух отсортированных массивов
  • K-й элемент двух отсортированных массивов
  • Выделить минимальное количество страниц.
  • Агрессивные коровы

Day12: (Bits) (необязательно, очень редкая тема в интервью, но если у вас осталось время, кто-нибудь может спросить)

  • Проверить, является ли число степенью двойки или нет в O(1)
  • Подсчитать количество установленных битов
  • Деление целых чисел без оператора /
  • Установка мощности (это очень важно)
  • Найти MSB в o(1)
  • Нахождение квадрата числа без использования операций умножения или деления.

День 13: (стек и очередь)

  • Реализовать стек с помощью массивов
  • Реализация очереди с использованием массивов
  • Реализовать стек с использованием очереди (с использованием одной очереди)
  • Внедрение очереди с использованием стека (0(1) амортизированный метод)
  • Проверить наличие сбалансированных скобок.
  • Следующий больший элемент
  • Сортировать стопку

День 14:

  • Следующий меньший элемент
  • Кэш LRU (vvvv. imp)
  • Кэш LFU (жесткий, можно игнорировать)
  • Самый большой прямоугольник на гистограмме (решение за один проход)
  • Максимум скользящего окна
  • Внедрение минимального стека
  • Rotten Orange (с использованием BFS)
  • Проблема с запасами
  • Найти максимальный или минимальный размер каждого окна
  • Проблема знаменитостей

День 15: (строка)

  • Переставить слова в строке
  • Самый длинный палиндром в строке
  • Преобразование римского числа в целое и наоборот
  • Внедрить ATOI/STRSTR
  • Самый длинный общий префикс Рабин Карп

День 16: (строка)

  • Функция префикса/Z-функция
  • Алгоритм KMP/массив LPS(pi)
  • Минимальное количество символов, которое нужно было вставить в начале, чтобы сделать его палиндромным.
  • Проверить номера версий Anagrams Count и Say Compare.

День 17: (Двоичное дерево)

  • Обход по порядку (с рекурсией и без рекурсии)
  • Обход предварительного заказа (с рекурсией и без рекурсии)
  • Обход в обратном порядке (с рекурсией и без рекурсии)
  • Вид бинарного дерева слева
  • Вид двоичного дерева снизу
  • Вид двоичного дерева сверху

День 18: (Двоичное дерево)

  • Обход уровня по порядку / Обход по порядку уровня по спирали
  • Высота бинарного дерева
  • Диаметр бинарного дерева
  • Проверьте, сбалансировано ли бинарное дерево по высоте
  • LCA в двоичном дереве
  • Проверить, идентичны ли два дерева

День 19. (Двоичное дерево)

  • Максимальная сумма пути
  • Создание бинарного дерева по порядку и предварительному порядку
  • Создание двоичного дерева из упорядоченного и обратного порядка
  • Симметричное двоичное дерево
  • Свести двоичное дерево к LinkedList
  • Проверить, является ли Binary Tree зеркалом самого себя или нет

День 20: (Двоичное дерево поиска)

  • Заполнить следующие правые указатели дерева
  • Поиск заданного ключа в BST Создайте BST из заданных ключей.
  • Проверить, является ли BT BST или нет
  • Найти LCA двух узлов в BST
  • Найти по порядку предшественника/преемника данного ключа в BST.

День 21: (BinarySearchTree)

  • Пол и потолок в BST
  • Найти K-й наименьший и K-й наибольший элемент в BST (2 разных вопроса)
  • Найти пару с заданной суммой в BST
  • Итератор BST Размер наибольшего BST в двоичном дереве.
  • Сериализация и десериализация двоичного дерева

День 22: (Смешанные вопросы)

  • Двоичное дерево для двойного связанного списка
  • Найти медиану в потоке бегущих целых чисел.
  • K-й по величине элемент в потоке.
  • Различные числа в окне.
  • K-й по величине элемент в несортированном массиве.
  • Алгоритм заливки

День 23: (график)

  • Клонировать график (не так просто, как кажется)
  • ДФС
  • БФС
  • Обнаружение цикла в неориентированном графе/ориентированном графе
  • Топографическая сортировка
  • Количество островов (как в таблице, так и в графике)
  • Двусторонняя проверка

День 24: (график)

  • SCC (с использованием алгоритма KosaRaju)
  • Алгоритм Дейкстры
  • Алгоритм Bellman-Ford
  • Алгоритм Флойда Уоршелла
  • MST с использованием алгоритма Prim.
  • MST с использованием алгоритма Крускала

День 25: (динамическое программирование)

  • Максимальный подмассив продуктов
  • Самая длинная возрастающая подпоследовательность
  • Самая длинная общая подпоследовательность
  • Рюкзак 0–1
  • Изменить расстояние
  • Максимальная сумма увеличивающейся подпоследовательности
  • Умножение цепочки матриц

День 26: (ДП)

  • Максимальный суммарный путь в матрице (количество путей и аналогичные типы, а также возврат для поиска максимального пути)
  • Сдача монет
  • Сумма подмножества
  • Резка стержня
  • Отбрасывание яиц
  • Разрыв слова
  • Разбиение на палиндромы (вариант MCM)
  • Максимальная прибыль при планировании заданий

Для основной версии

День 27:

  • Пересмотрите заметки об операционной системе, которые вы могли бы сделать во время работы с sem.
  • Если вы не сделали заметки, потратьте 2–3 дня и сделайте заметки в Knowledge Gate.

День 28:

  • Пересмотрите заметки о СУБД, которые вы могли бы сделать в течение семестров.
  • Если вы не сделали заметки, потратьте 2–3 дня и сделайте заметки в Knowledge Gate.

День 29:

  • Пересмотрите заметки CN, которые вы могли бы сделать во время своего семинара.
  • Если вы не сделали заметки, потратьте 2–3 дня и сделайте заметки в Knowledge Gate.

День 30:

  • Запишите, как вы будете представлять свои проекты, и подготовьте все вопросы, связанные с технологиями, которые вы использовали в своих проектах.
  • Подготовьте записку, которую вы можете сказать в течение 3-10 минут, когда он попросит вас рассказать что-нибудь о проекте.


Структуры данных & Алгоритмы собеседования по кодированию

Ссылка на репозиторий: https://github.com/SamirPaul1/DSAlgo< /сильный>

В этом репозитории я храню решения различных проблем и концепций Структур данных и алгоритмов в Python3 в структурированном виде.✨

Рассматриваемые темы:

  • Динамическое программирование
  • Алгоритмы сортировки
  • Связанный список
  • Объектно-ориентированное программирование
  • Двоичные деревья
  • Графические алгоритмы
  • Куча
  • Матрица
  • Три
  • Двоичный поиск
  • Возврат
  • Стек
  • Очередь
  • Жадный
  • Строка
  • Битовые манипуляции
  • Массив
  • Хэш-карта
  • ДФС БФС
  • Два указателя
  • Математика
  • Рекурсия

В различных папках вышеуказанных тем вы можете найти вопросы и понятия, связанные с этой темой.

  • Для изучения динамического программирования нам нужно связать понятия, изученные в одном вопросе, с применением к другой проблеме💡. В разделе "Динамическое программирование" вы можете найти все вопросы, затронутые и не затронутые в Адитья Верма. плейлист динамического программирования по папкам с моим рукописные заметки.✍️
  • Если вы готовитесь к собеседованию из листа SDE Striver затем 30-Days-SDE-Sheet -Практика будет вам полезна. Здесь я храню решения вопросов на каждый день с краткими примечаниями к каждому решению, так как короткие примечания о подходе очень помогают при доработке.🎯
  • В каталоге Questions-Sheet вы можете найти вопросы, заданные ведущими компаниями, специализирующимися на продуктах.
  • В каталоге BOOKS-and-PDF есть коллекция книг и PDF-файлов по различным важным основам информатики.📚

Просмотреть этот репозиторий в онлайн-интерфейсе, похожем на VSCode▶️ https://samirpaul.in/DSAlgo 🚀

Я постоянно пытаюсь улучшить этот репозиторий, добавляя новые вопросы и концепции, связанные с соответствующей темой. Пожалуйста, не стесняйтесь вносить свой вклад в этот репозиторий.💻

Если вы цените мою работу, поставьте звездочку (🌟) этому репозиторию. Это мотивирует меня. ❤️🚀


Оригинал