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 a> затем 30-Days-SDE-Sheet -Практика будет вам полезна. Здесь я храню решения вопросов на каждый день с краткими примечаниями к каждому решению, так как короткие примечания о подходе очень помогают при доработке.🎯
- В каталоге Questions-Sheet вы можете найти вопросы, заданные ведущими компаниями, специализирующимися на продуктах.
- В каталоге BOOKS-and-PDF есть коллекция книг и PDF-файлов по различным важным основам информатики.📚
Просмотреть этот репозиторий в онлайн-интерфейсе, похожем на VSCode▶️ https://samirpaul.in/DSAlgo сильный> 🚀
Я постоянно пытаюсь улучшить этот репозиторий, добавляя новые вопросы и концепции, связанные с соответствующей темой. Пожалуйста, не стесняйтесь вносить свой вклад в этот репозиторий.💻
Если вы цените мою работу, поставьте звездочку (🌟) этому репозиторию. Это мотивирует меня. ❤️🚀
Оригинал