Упрощенный китайский |
Наш лозунг: «Только овладев базовыми структурами данных и алгоритмами, мы сможем легко решать сложные проблемы».
Вышла в свет моя новая книга «Дорога к алгоритмическому прояснению».
Ссылка на покупку книги на физической версии 1
Ссылка на покупку книги на физической версии 2
Ссылка на покупку электронной книги
https://github.com/fe-lucifer/fanqiang
В бесплатных вопросах Likou уже есть множество классических вопросов, охватывающих все типы вопросов, но реальные вопросы многих компаний заблокированы. Лично я считаю, что если вы ищете работу, вы можете купить членство. Кроме того, участники могут просматривать множество блокнотов. В сочетании с планом обучения эффективность довольно высока.
Теперь Liquou запустила дополнительную программу членства, основанную на одном вопросе в день. Вы можете зарабатывать баллы, отвечая на вопросы каждый день, и их можно обменять на периферийные устройства Liquou.
Если вы хотите купить членство Leetcode, вот моя эксклюзивная скидка Leetcode: https://leetcode.cn/premium/?promoChannel=lucifer (годовые участники получат два дополнительных месяца членства, а квартальные участники получат две дополнительные недели членства). членство)
Многие учебные заведения продвигают алгоритмические собеседования за 7 дней и месяц. Наверное, я это понял, но это не очень надежно. Обучение алгоритмам по-прежнему требует накопления. Без количественных изменений не может быть качественных изменений. Некоторые люди предпочитают читать книги, и это хороший выбор. Однако многие люди выбирают устаревшие или некачественные книги или не умеют писать приведенные в книге упражнения, что приводит к плохим результатам.
По этим причинам я организовал 91-дневное мероприятие по сдаче тестов, предоставляя новейший путь обучения в течение относительно длительного периода времени (91 день) и заставляя всех зарегистрироваться, упражнение высокой интенсивности, чтобы каждый мог встретимся через 91 день. Лучшая версия себя . Подробное описание мероприятия можно посмотреть, перейдя по ссылке ниже. Кроме того, ниже представлены конспекты лекций из предыдущих выпусков. Вы можете проверить, соответствуют ли они вашему вкусу.
Наконец, я хотел бы передать вам сообщение: если вы будете упорствовать, однажды вы внезапно вырастете .
Нажмите здесь, чтобы принять участие
Если вы считаете, что вышеуказанные групповые занятия относительно неэффективны, в настоящее время я также принимаю обучение алгоритмам 1 на 1. Цена зависит от основы вашего алгоритма и контента, который вы хотите изучить. Если вам интересно, вы можете добавить меня в WeChat, отметив «Алгоритм». Коучинг», идентификатор WeChat: DevelopeEngineer.
Решение проблем с Leetcode, запишите свой собственный путь решения проблем с Leetcode.
В настоящее время этот склад разделен на пять частей:
Первая часть — это анализ классических вопросов по лит-коду, включая идеи, ключевые моменты и конкретные реализации кода.
Вторая часть представляет собой краткое изложение структур данных и алгоритмов.
Третья часть — анки-карточки. Вопросы по лит-коду записаны в анки определенным образом, чтобы облегчить всем запоминание.
Четвертая часть — ежедневный вопрос. Ежедневный вопрос — это деятельность, выполняемая в группах общения (включая WeChat и QQ). Все решают вопрос вместе, чтобы обсуждение было более целенаправленным и было получено больше отзывов. Более того, эти вопросы могут быть записаны и в дальнейшем будут отфильтрованы и добавлены в модуль решений склада.
Пятая часть — план. Здесь мы будем записывать контент, который будет добавлен к трем вышеперечисленным частям в будущем.
Примечание: Электронная книга здесь - это не электронная версия "Дороги к алгоритмическому разрешению", а электронная версия содержимого этого склада!
Читать адрес онлайн
Бесплатная загрузка в течение ограниченного времени! Комиссия может быть снята в любое время позже
Вы можете зайти в мой официальный аккаунт «Likoujiajia», чтобы ответить и получить электронную книгу!
в epub все еще есть анимация
Кроме того, некоторый контент публикуется только на официальном аккаунте, поэтому, если вы считаете, что контент хороший, вы можете обратить на него внимание. Будет еще лучше, если вы поставите ➕ еще одну звезду!
(Изображение из литкода)
Среди них алгоритмы в основном следующие:
Структуры данных в основном включают в себя следующее:
Я нашел в Интернете «Шпаргалку по собеседованию». В этом PDF-файле перечислены шаги шаблона собеседования. , с подробными пошаговыми инструкциями по прохождению собеседования.
В начале этого PDF-файла упоминаются три критерия хорошего кода:
Это так хорошо написано.
Далее перечислены 15 шагов алгоритма собеседования. Например, Шаг 1. После того, как интервьюер закончил задавать вопросы, вам нужно сначала записать ключевые моменты (а затем написать комментарии и код ниже). После прочтения у меня такое чувство , что если вы будете следовать этому во время интервью, процент успеха увеличится.
Возможно, это расширение для браузера, которое может изменить эффективность ваших ответов на вопросы.
Адрес плагина: https://chrome.google.com/webstore/detail/leetcode-cheatsheet/fniccleejlofifaakbgppmbbcdfjonle?hl=en-US.
Друзья, у которых нет доступа к Google Store, могут зайти в мою официальную учетную запись, чтобы ответить на плагин и получить автономную версию. Настоятельно рекомендуется использовать для установки Google Play Store, чтобы при наличии обновлений их можно было установить автоматически. Ведь наши плагины обновляются довольно быстро.
Кроме того, вы также можете использовать веб-сайт, разработанный Zerotrac, для подсчета баллов за успешные вопросы. Оценка здесь относится к баллам в конкурсе. Вы можете выбрать вопросы, которые немного превышают ваш собственный балл в конкурсе, чтобы практиковаться на основе вашего балла в конкурсе. Обратите внимание, что это только приблизительный балл, рассчитанный на основе количества сдавших экзамен людей. Адрес: https://zerotrac.github.io/leetcode_problem_rating/
Здесь представлены только репрезентативные темы , а не все темы.
На данный момент обновлено более 200 решений вопросов, а включая вопросы, относящиеся к специальным темам, насчитывается почти 300 вопросов .
Сложность вопросов здесь относительно невелика, и большинство из них представляют собой вопросы моделирования или вопросы, решения которых легко увидеть. Кроме того, простые вопросы обычно можно решить, используя методы грубой силы. А пока просто посмотрите на диапазон данных и подумайте о сложности вашего алгоритма.
Конечно, не исключено, что многие сложные вопросы могут быть и насильно смоделированы. Просто уделите больше внимания диапазону данных.
Ниже приведены классические вопросы, которые я перечислил (слова, отмеченные цифрой 91, взяты из 91 упражнения по алгоритму Тяньсюэ ):
Вопрос на собеседовании 17.12. BiNode?
0001. Сумма двух чисел
0020. Допустимые скобки
0021. Объединить два упорядоченных связанных списка.
0026. Удалить дубликаты в отсортированном массиве
0053. Максимальная сумма подпоследовательности
0066. плюс один 91
0088. Объединить два отсортированных массива
0101. Симметричное двоичное дерево
0104. Максимальная глубина двоичного дерева.
0108. Преобразование упорядоченного массива в двоичное дерево поиска.
0121. Лучшее время для покупки и продажи акций
0122. Лучшее время для покупки и продажи акций II
0125. Проверка строки-палиндрома.
0136. Число, которое появляется только один раз.
0155. Минимальный стек?
0160. Пересекающийся связный список 91
0167. Сумма двух чисел II входной упорядоченный массив
0169. Большинство элементов
0172. Ноль после факториала
0190. Обратные двоичные биты
0191. Количество битов 1
0198. Ограбление
0203. Удалить элементы связанного списка
0206. Обратно связанный список
0219. Существуют повторяющиеся элементы II
0226. Перевернуть двоичное дерево
0232. Использовать стек для реализации очереди 91?
0263. Уродливые цифры
0283. Переместить ноль
0342. Степень 4?
0349. Пересечение двух массивов
0371. Сумма двух целых чисел
401. Бинарные часы
0437. Сумма пути III
0455. Распространение файлов cookie
0504. Семёрка.
0575. Поделиться конфетой
0606. Создать строку на основе двоичного дерева
0661. Изображение более плавное
0665. Неубывающая последовательность
821. Кратчайшее расстояние между знаками 91.
0874. Имитация шагающего робота
1128. Количество эквивалентных пар домино.
1260. Миграция 2D-сетки
1332. Удалить палиндромные подпоследовательности.
2591. Дайте денег как можно большему количеству детей
В вопросах среднего уровня наибольшая доля выводов, поэтому к этой части у меня больше всего решений. Не зацикливайтесь на сложных задачах. Прежде чем двигаться дальше, освойте вопросы средней сложности.
Эта часть вопросов требует от нас выкопать информацию, содержащуюся в вопросах, и преобразовать ее в простые вопросы. Или есть вопросы, которые сложнее написать, и некоторые люди терпят неудачу из-за своих плохих навыков программирования. Поэтому каждый должен сделать это сам. Даже если он «поймет» это после прочтения решения, ему все равно придется его кодировать самостоятельно. Если вы не напишете это сами, вы никогда не узнаете деталей внутри.
Ниже приведены классические вопросы, которые я перечислил (слова, отмеченные цифрой 91, взяты из 91 упражнения по алгоритму Тяньсюэ ):
Вопрос интервью 17.09.к-го номера.
Вопрос интервью 17.23. Максимальная черная квадратная матрица.
Вопрос интервью 16.16. Частичный заказ.
Увеличение цифр?
Самый длинный непрерывный строго увеличивающийся подсписок после удаления?
Последовательные победы
Сортировка строк по перевернутым значениям
Количество подстрок с разницей в один символ
Стоимость проезда на автобусе?
Минимальная сумма пути отбрасывания
Самая длинная длина матричного пути
Минимальная сумма каждого подсписка
Максимизируйте количество эквивалентных пар после свопов
0002. Сложить две цифры
0003. Самая длинная подстрока без повторяющихся символов.
0005. Самая длинная подстрока палиндрома.
0011. Контейнер, в котором содержится больше всего воды
0015. Сумма трёх чисел
0017. Алфавит телефонного номера
0019. Удалить N-й узел внизу связанного списка.
0022. Генерация кронштейна
0024. Обмен узлами в связанном списке попарно
0029. Разделить два числа
0031. Следующая аранжировка
0033. Поиск в повернутом отсортированном массиве
0039. Сумма комбинации
0040. Сумма комбинации II
0046. Полное обустройство
0047. Полное расположение II
0048. Поворот изображения
0049. Группировка анаграмм алфавита
0050. Pow(x, n) ?
0055. Игра в прыжки
0056. Интервал слияния
0060. K-я перестановка?
0061. Вращающийся связанный список 91
0062. Разные пути
0073. Обнуление матрицы
0075. Цветовая классификация?
0078. Подмножество
0079. Поиск слов
0080. Удалить дубликаты в отсортированном массиве II
0086. Отдельный связанный список
0090. Подмножество II
0091. Метод декодирования
0092. Обратно связанный список II
0094. Порядковый обход двоичного дерева?
0095. Различные двоичные деревья поиска II
0096. Различные деревья двоичного поиска
0098. Проверка бинарного дерева поиска.
0102. Поуровневый обход двоичного дерева.
0103. Зигзагообразный обход двоичного дерева.
0113. Сумма пути II
0129. Найдите сумму чисел от корня до конечного узла?
0130. Окруженная территория
0131. Разбить строку-палиндром
0139. Разделение слов
0144. Предзаказный обход двоичного дерева
0147. Сортировка вставкой в связанном списке
0150. Обратная оценка польского выражения
0152. Максимальный подмассив продукта
0153. Найдите минимальное значение в повернутом отсортированном массиве.
0199. Правильный взгляд на бинарное дерево?
0200. Количество островов?
0201. Побитовое И числовых диапазонов.
0208. Реализовать Trie (префиксное дерево)
0209. Подмассив минимальной длины.
0211. Добавление и поиск слов-проектирование структуры данных
0215. K-й по величине элемент массива
0220. Наличие повторяющегося элемента III
0221. Максимальная площадь
0227. Базовый калькулятор II
0229. Найти режим II
0230. K-й наименьший элемент в бинарном дереве поиска.
0236. Самый последний общий предок двоичного дерева.
0238. Произведение массивов, отличных от самого себя
0240. Поиск двумерных матриц II
0279. Идеальное квадратное число
0309. Лучшее время для покупки и продажи акций включает период замораживания.
0322. Обменять обмен?
0324. Качающаяся сортировка II
0328. Нечетный и четный связанный список
0331. Проверка предварительной сериализации двоичных деревьев.
0334. Возрастающая троичная подпоследовательность
0337. Ограбление III
0343. Целочисленное разделение
0365. Проблема с чайником
0378. K-й наименьший элемент в упорядоченной матрице
0380. Вставка, удаление и извлечение случайных элементов в постоянное время.
0385. Мини-парсер
0394. Декодирование строки 91
0416. Разделение подмножеств равной суммы
0424. Самый длинный повторяющийся символ после замены
0438. Найдите все анаграммы букв в строке.
0445. Сложение двух чисел II
0454. Сложение четырёх цифр II
0456. 132 режим
0457.457.Есть ли в круговом массиве петля?
0464. Могу ли я выиграть?
0470. Реализуйте Rand10 с помощью Rand7().
0473. Спички образуют квадрат?
0494. Цели и
0516. Самая длинная подпоследовательность палиндрома.
0513. Найдите значение 91 в левом нижнем углу дерева.
0518. Обмен изменений II
0525. Непрерывная решетка
0547. Количество провинций
0560. Подмассив, сумма которого равна K
0609. Найти дубликаты файлов в системе
0611. Количество допустимых треугольников?
0673. Число самых длинных возрастающих подпоследовательностей
0686. Повторное сопоставление составных строк
0710. Случайные числа в черном списке.
0714. Лучшее время для покупки и продажи акций, включая комиссию за обработку
0718. Самый длинный повторяющийся подмассив
0735. Столкновение планет?
0754. Достигнут конечный номер
0785. Суждение двудольных графов
0790. Домино и плитка Томино
0799. Башня шампанского
0801. Минимальное количество обменов для увеличения последовательности
0816. Нечеткие координаты
0820. Сжатие кодирования слов.
0838. Нажмите домино
0873. Длина самой длинной подпоследовательности Фибоначчи.
0875. Кеке, которая любит бананы
0877. Игра с камнями
0886. Возможная дихотомия
0898. Побитовая операция ИЛИ над подмассивами
0900. Итератор RLE
0911. Онлайн выборы
0912. Сортировка массива
0918. Максимальная сумма круговых подмассивов?
0932. Красивый массив
0935. Рыцарь-звонилка
0947. Уберите больше всего камней в одном ряду или ряду.
0959. Области, разделенные косой чертой
0978. Самый длинный подмассив турбулентности
0987. Вертикальный обход двоичного дерева 91
1004. Максимальное количество последовательных единиц III.
1011. Возможность доставить посылку в течение D дней.
1014. Лучшее сочетание достопримечательностей
1015. Наименьшее целое число, кратное К.
1019. Следующий больший узел в связанном списке
1020. Количество анклавов
1023. Соответствие CamelCase
1031. Максимальная сумма двух непересекающихся подмассивов
1043. Разделить массив, чтобы получить максимальную сумму
1053. Предыдущая перестановка заменена один раз)
1104. Поиск пути в двоичном дереве
1129. Кратчайший путь с чередующимися цветами
1131. Максимальное значение выражения абсолютного значения
1138. Путь на доске с алфавитом
1186. Удалить один раз, чтобы получить максимальную сумму подмассива
1218. Самая длинная подпоследовательность с определенной разностью
1227. Какова вероятность распределения мест в самолете?
1261. Поиск элементов в испорченном двоичном дереве
1262. Самая большая сумма, кратная трем
1297. Максимальное количество вхождений подстроки
1310. Запрос XOR подмассива.
1334. Город с наименьшим количеством соседей на пороговом расстоянии.
1371. Самая длинная подстрока, содержащая четное количество раз каждую гласную
1381. Спроектируйте стек, поддерживающий инкрементальные операции 91
1423. Максимальное количество получаемых очков.
1438. Самый длинный непрерывный подмассив, абсолютная разность которого не превышает предела
1558. Получить минимальное количество вызовов функций для целевого массива.
1574. Удалите самый короткий подмассив, чтобы отсортировать оставшийся массив.
1589. Максимальная сумма среди всех перестановок
1631. Минимальный путь физического потребления
1638. Подсчитайте количество подстрок, отличающихся всего одним символом.
1658. Минимальное количество операций для уменьшения х до 0
1697. Проверьте, существует ли путь с ограничением длины ребра.
1737. Минимальное количество символов, которое необходимо изменить, чтобы удовлетворить одному из трёх условий?
1770. Максимальная дробь для выполнения умножения 91?
1793. Максимальный балл хороших подмассивов
1834. Однопоточный процессор.
1899. Объединить несколько троек, чтобы сформировать целевую тройку?
1904. Количество пройденных вами полных игр.
1906. Запрос минимального значения абсолютной величины разницы
2007. Восстановление исходного массива из двойного массива.
2008. Максимальная прибыль от такси
2592. Максимизация ценности массива
2593. Оценка массива после маркировки всех элементов
2817. Минимальная абсолютная разница между элементами при ограничениях
2865. Прекрасная Башня I
2866. Прекрасная Башня II
2939. Максимальное произведение XOR
5935. Хороший день для ограбления банка
5936. Взорвалось больше всего бомб.
5965. Сумма интервалов одинаковых элементов
6021. Максимальное количество подстрок в строке
Что касается типов, трудными вопросами в основном являются:
Что касается решений, большинство из них:
Логически говоря, это либо очень сложно придумать, либо очень сложно закодировать. Поскольку иногда необходимо объединить несколько алгоритмов, эта часть вопроса является самой сложной.
Здесь я суммировал несколько советов:
Ниже приведены классические вопросы, которые я перечислил (слова, отмеченные цифрой 91, взяты из 91 упражнения по алгоритму Тяньсюэ ):
LCP 20. Скоростной транзит
LCP 21. Игра в погоню?
Числовой поток в интервалы
Тройная инверсия 91
К-я пара Дистанция 91
Минимальный радиус света 91
Самый большой эквивалентный набор пар?
Ticket-Order.md
Подключенная дорога к месту назначения
0004. Найти медиану двух положительно упорядоченных массивов?
0023. Объединить K восходящих связанных списков
0025. Набор K флип-связных списков?
0030. Объединить подстроки всех слов.
0032. Самая длинная действующая скобка
0042. Сбор дождевой воды
0052. Н Королева II
0057. Вставить интервал
0065. Действительные цифры
0084. Самый большой прямоугольник на гистограмме.
0085. Максимальный прямоугольник
0087. Зашифровать строку
0124. Максимальная сумма путей в двоичном дереве
0128. Самая длинная непрерывная последовательность
0132. Разделить строку палиндрома II?
0140. Разделение слов II
0145. Постзаказный обход двоичного дерева.
0146. Механизм кэширования LRU
0154. Нахождение минимального значения в повернутом отсортированном массиве II
0212. Поиск слов II
0239. Максимальное значение скользящего окна?
0295. Медиана потока данных
0297. Сериализация и десериализация бинарных деревьев 91
0301. Удалить неправильные скобки.
0312. Тыкать в шарик
330. Заполните массив по мере необходимости.
0335. Пересечение пути
0460. Кэш LFU
0472. Соединительные слова
0480. Медиана скользящего окна
0483. Минимальная хорошая база
0488. Игра Зума
0493. Перевернутая пара
0664. Странный принтер
0679. Игра в Блэкджек
0715. Модуль дальности?
0726. Число атомов
0768. Максимальное количество блоков, которые можно отсортировать, II 91.
0805. Среднее разбиение массива
0839. Подобные группы строк
0887. Яйцо упало
0895. Максимальный стек частот
0909. Змеи и лестницы
0975. Прыжок нечет-чет
0995. Минимальное количество переворотов K последовательных битов.
1032. Поток символов
1168. Оптимизация распределения водных ресурсов.
1178. Головоломка на угадывание слов.
1203. Управление проектом
1255. Набор слов с наивысшим баллом
1345. Игра в прыжки IV.
1449. Сумма цифровых затрат представляет собой наибольшее количество целевых значений.
1494. Параллельный курс II.
1521. Найдите значение функции, наиболее близкое к целевому значению.
1526. Минимальное количество приращений подмассивов, образующих целевой массив
1639. Количество вариантов построения целевой строки через заданный словарь new
1649. Создать упорядоченный массив с помощью инструкций
1671. Получить минимальное количество удалений горного массива.
1707. Максимальное значение XOR с элементами массива.
1713. Минимальное количество операций для получения подпоследовательности
1723. Минимальное время для выполнения всех работ
1787. Обнулить результат XOR всех интервалов
1835. Сумма XOR побитового И всех пар чисел
1871. Прыжок VII?
1872. Игра с камнями VIII.
1883. Минимальное количество пропущенных перерывов, чтобы прийти на встречу вовремя.
1970. Последний день, когда можно пересечь матрицу
2009. Минимальное количество операций, чтобы сделать массив непрерывным.
2025. Максимальное количество способов разбить массив
2030. Минимальная подпоследовательность, содержащая определенные буквы
2102. Запрос порядка последовательности
2141. Самое продолжительное время одновременной работы N компьютеров
2179. Посчитайте количество хороших троек в массиве?
2209. Минимум белых кирпичей после покрытия их ковром?
2281.Совокупная власть волшебников и
2306. Хорошие вопросы по оптимизации перечисления названий компаний.
2312. Классическая задача динамического программирования о продаже деревянных брусков.
2842. Подсчитайте максимальное количество красивых значений k подпоследовательностей строки
2972. Подсчитать количество удаленных возрастающих подмассивов II
3027. Количество планов по кадровым должностям II
3041. Максимизировать количество последовательных элементов в массиве после изменения массива
3082. Найти сумму энергий всех подпоследовательностей
3108. Минимальная стоимость путешествия с Куан Тули
3347. Наибольшая частота элемента после выполнения операции II.
3336. Число подпоследовательностей с одинаковыми наибольшими общими делителями.
Anki в основном разделен на две части: одна — это сопоставление ключевых моментов с вопросами, а другая — сопоставление вопросов с идеями, ключевыми точками и кодами.
Все карты есть в anki-card
Как использовать:
anki — Файл — Импорт — выберите «Упакованная коллекция Anki» в раскрывающемся формате, затем выберите загруженный файл и подтвердите.
Для получения дополнительной информации о том, как использовать Anki, посетите официальный сайт Anki.
Вы также можете добавить меня в друзья WeChat для общения!
10.07.2019: Короткая статья, посвященная проекту Star, прорывающемуся через 1W, записывающему «взлет» проекта. Если вам интересно, вы можете посмотреть. Если вам интересен этот проект, нажмите «Звезда ». Проект будет продолжать обновляться . Спасибо всем за поддержку.
08.10.2019: В ознаменование того, что проект LeetCode Star преодолел отметку 2W, и поиск на Github по запросу «LeetCode» занял первое место.
2020-04-12: Проект превысил 30 000 звезд.
14.04.2020: Официальный сайт力扣加加
теперь онлайн. На нем есть специальные пояснения, один вопрос в день, зона для скачивания и видео-решение. Не спешите собирать его? Адрес: http://leetcode-solution.cn/
Я написал руководство о том, как отправлять решения
Спасибо всем друзьям, которые внесли свой вклад в этот проект
CC BY-NC-ND 4.0