Линткод
На сегодняшний день (22 августа 2016 г.) в LintCode Online Judge обнаружено 289
проблем. В последнее время количество проблем увеличивается. Вот классификация всех 289
задач. Дополнительные проблемы и решения можно найти в моем репозитории LeetCode-Solutions. Я буду продолжать обновлять информацию, чтобы получить полное описание и лучшие решения. Следите за обновлениями.
Алгоритмы
- Битовые манипуляции
- Множество
- Нить
- Связанный список
- Математика
- Дерево
- Куча
- Очередь
- Куча
- Хэш-таблицы
- Структура данных
- Сортировать
- Рекурсия
- Бинарный поиск
- Поиск в ширину
- Поиск в глубину
- Возврат
- Двоичные деревья поиска
- Динамическое программирование
- Жадный
- ОО Дизайн
- Проектирование системы
Битовые манипуляции
# | Заголовок | Решение | Время | Космос | Сложность | Ярлык | Примечание |
---|
1 | Задача А + Б | С++ | О(1) | О(1) | Середина | | |
82 | Единый номер | С++ | На) | О(1) | Легкий | ЛитКод | |
83 | Одноместный номер II | С++ | На) | О(1) | Легкий | ЛитКод | |
84 | Одиночный номер III | С++ | На) | О(1) | Середина | CTCI | |
142 | O(1) Проверить степень 2 | С++ | О(1) | О(1) | Легкий | | |
179 | Обновить биты | С++ | О(1) | О(1) | Середина | CTCI | |
181 | Перевернуть биты | С++ | О(1) | О(1) | Легкий | CTCI | |
196 | Найдите недостающее число | С++ | На) | О(1) | Середина | | |
365 | Счет 1 в двоичном формате | С++ | О(1) | О(1) | Легкий | CTCI | |
Множество
# | Заголовок | Решение | Время | Космос | Сложность | Ярлык | Примечание |
---|
6 | Объединить отсортированный массив | С++ | О (м + п) | О(1) | Легкий | ЛитКод | Два указателя |
8 | Поворот строки | С++ | На) | О(1) | Легкий | ЛитКод | |
9 | Физз Базз | С++ | На) | О(1) | Легкий | | |
30 | Вставить интервал | С++ | На) | О(1) | Легкий | ЛитКод, ЭПИ | |
31 | Разделение массива | С++ | На) | О(1) | Середина | | Два указателя |
32 | Минимальная подстрока окна | С++ | На) | О(1) | Середина | ЛитКод | |
38 | Поиск в 2D-матрице II | С++ | О (м + п) | О(1) | Середина | РПИ | |
39 | Восстановить повернутый отсортированный массив | С++ | На) | О(1) | Легкий | | |
46 | Число большинства | С++ | На) | О(1) | Легкий | ЛитКод | |
47 | Большинство номер II | С++ | На) | О(1) | Середина | РПИ | |
48 | Большинство номер III | С++ | На) | Хорошо) | Середина | РПИ | |
49 | Сортировка писем по регистру | С++ | На) | О(1) | Середина | | Два указателя |
50 | Продукт массива, исключающий самого себя | С++ | На) | О(1) | Легкий | | |
51 | Предыдущая перестановка | С++ | На) | О(1) | Середина | | |
52 | Следующая перестановка | С++ | На) | О(1) | Середина | ЛитКод | |
57 | 3 Сумма | С++ | О(п^2) | О(1) | Середина | ЛитКод | Два указателя, сортировка |
58 | 4 Сумма | С++ | О(п^3) | О(1) | Середина | ЛитКод | Хэш |
59 | 3 Сумма Ближайший | С++ | О(п^2) | О(1) | Середина | ЛитКод | Два указателя, сортировка |
64 | Объединить отсортированный массив II | С++ | О (м + п) | О(1) | Легкий | ЛитКод | Два указателя |
100 | Удалить дубликаты из отсортированного массива | С++ | На) | О(1) | Легкий | ЛитКод | Два указателя |
101 | Удалить дубликаты из отсортированного массива II | С++ | На) | О(1) | Легкий | ЛитКод | Два указателя |
133 | Самые длинные слова | С++ | На) | На) | Легкий | | |
144 | Чередование положительных и отрицательных чисел | С++ | На) | О(1) | Середина | | Два указателя |
161 | Поворот изображения | С++ | О(п^2) | О(1) | Середина | ЛитКод | |
162 | Установить нули матрицы | С++ | О(м * п) | О(1) | Середина | ЛитКод | |
172 | Удалить элемент | С++ | На) | О(1) | Легкий | ЛитКод | Два указателя |
185 | Матричный зигзагообразный обход | С++ | О(м * п) | О(1) | Легкий | | |
189 | Первый пропавший позитив | С++ | На) | О(1) | Легкий | ЛитКод, ЭПИ | Хэш |
190 | Следующая перестановка II | С++ | На) | О(1) | Середина | ЛитКод | |
200 | Самая длинная палиндромная подстрока | С++ | На) | На) | Середина | ЛитКод | Manacher's Algorithm |
363 | Улавливание дождевой воды | С++ | На) | О(1) | Середина | ЛитКод | Два указателя, хитрый |
373 | Разделение массива по нечетным и четным | С++ | На) | О(1) | Легкий | | Два указателя |
374 | Спиральная матрица | С++ | О(м * п) | О(1) | Середина | ЛитКод | |
381 | Спиральная матрица II | С++ | О(п^2) | О(1) | Середина | ЛитКод | |
382 | Количество треугольников | С++ | О(п^2) | О(1) | Середина | | Два указателя |
383 | Контейнер с большим количеством воды | С++ | На) | О(1) | Середина | ЛитКод, ЭПИ | Два указателя |
388 | Последовательность перестановок | С++ | О(п^2) | На) | Середина | ЛитКод | |
389 | Действительное судоку | С++ | О(9^2) | О(9) | Легкий | ЛитКод | |
404 | Сумма подмассива II | С++ | О(нлогн) | На) | Жесткий | | Два указателя, двоичный поиск |
405 | Сумма подматрицы | С++ | О(м * п^2) | О (м) | Жесткий | | Хэш |
406 | Сумма подмассива минимального размера | С++ | На) | О(1) | Середина | ЛитКод | Два указателя, двоичный поиск |
539 | Переместить нули | С++ | На) | О(1) | Легкий | ЛитКод | Два указателя |
Нить
# | Заголовок | Решение | Время | Космос | Сложность | Ярлык | Примечание |
---|
13 | стрСтр | С++ | О (п + к) | Хорошо) | Легкий | ЛитКод | KMP Algorithm |
53 | Перевернуть слова в строке | С++ | На) | О(1) | Легкий | ЛитКод, ЭПИ | |
54 | Строка в целое число (atoi) | С++ | На) | О(1) | Жесткий | ЛитКод | |
55 | Сравнить строки | С++ | На) | О (с) | Легкий | | |
78 | Самый длинный общий префикс | С++ | На) | О(1) | Середина | | |
157 | Уникальные персонажи | С++ | На) | О(1) | Легкий | CTCI | |
158 | Две строки — анаграммы | С++ | На) | О(1) | Легкий | | |
171 | Анаграммы | С++ | О(н *клогк) | О (м) | Легкий | ЛитКод, ЭПИ | |
212 | Замена пространства | С++ | На) | О(1) | Легкий | | |
407 | Плюс один | С++ | На) | О(1) | Легкий | ЛитКод | |
408 | Добавить двоичный файл | С++ | На) | О(1) | Легкий | ЛитКод | |
415 | Действительный палиндром | С++ | На) | О(1) | Легкий | ЛитКод | |
417 | Действительный номер | С++ | На) | О(1) | Жесткий | ЛитКод | Автоматы |
420 | Посчитай и скажи | С++ | О(п * 2^п) | О (2 ^ п) | Легкий | ЛитКод | |
422 | Длина последнего слова | С++ | На) | О(1) | Легкий | ЛитКод | |
524 | Левая панель | С++ | О (р + п) | О(1) | Легкий | ЛитКод | |
Связанный список
# | Заголовок | Решение | Время | Космос | Сложность | Ярлык | Примечание |
---|
16 | Объединить два отсортированных списка | С++ | На) | О(1) | Легкий | ЛитКод, ЭПИ | |
35 | Обратный связанный список | С++ | На) | О(1) | Легкий | ЛитКод, ЭПИ | |
36 | Обратно-связанный список II | С++ | На) | О(1) | Середина | ЛитКод, ЭПИ | |
96 | Список разделов | С++ | На) | О(1) | Легкий | ЛитКод | |
98 | Сортировать список | С++ | О(нлогн) | О(вход) | Середина | ЛитКод, ЭПИ | |
99 | Переупорядочить список | С++ | На) | О(1) | Середина | ЛитКод | |
102 | Цикл связанного списка | С++ | На) | О(1) | Середина | ЛитКод | |
103 | Связанный список, цикл II | С++ | На) | О(1) | Жесткий | ЛитКод | |
104 | Объединить k отсортированных списков | С++ | О(п * логк) | О(1) | Середина | ЛитКод | Куча, разделяй и властвуй |
105 | Список копирования со случайным указателем | С++ | На) | О(1) | Середина | ЛитКод | |
106 | Преобразование отсортированного списка в двоичное дерево поиска | С++ | На) | О(вход) | Середина | ЛитКод, ЭПИ | |
112 | Удалить дубликаты из отсортированного списка | С++ | На) | О(1) | Легкий | ЛитКод, ЭПИ | |
113 | Удалить дубликаты из отсортированного списка II | С++ | На) | О(1) | Середина | ЛитКод, ЭПИ | |
166 | От N-го до последнего узла в списке | С++ | На) | О(1) | Легкий | ЛитКод | |
167 | Сумма двух списков | С++ | На) | О(1) | Легкий | ЛитКод | |
170 | Поворот списка | С++ | На) | О(1) | Середина | ЛитКод | |
173 | Список сортировки вставками | С++ | О(п^2) | О(1) | Легкий | ЛитКод | |
174 | Удалить N-й узел из конца списка | С++ | На) | О(1) | Легкий | ЛитКод | |
223 | Связанный список палиндромов | С++ | На) | О(1) | Середина | ЛитКод | |
372 | Удалить узел в середине односвязного списка | С++ | О(1) | О(1) | Легкий | CTCI | |
380 | Пересечение двух связанных списков | С++ | О (м + п) | О(1) | Легкий | ЛитКод | |
450 | Обратные узлы в k-группе | С++ | На) | О(1) | Жесткий | ЛитКод | |
451 | Поменяйте узлы парами | С++ | На) | О(1) | Легкий | ЛитКод | |
452 | Удаление элементов связанного списка | С++ | На) | О(1) | Наивный | ЛитКод | |
511 | Поменяйте местами два узла в связанном списке | С++ | На) | О(1) | Середина | | |
Дерево
# | Заголовок | Решение | Время | Космос | Сложность | Ярлык | Примечание |
---|
7 | Сериализация двоичного дерева | С++ | На) | Ой) | Середина | | |
85 | Вставить узел в двоичное дерево поиска | С++ | Ой) | О(1) | Легкий | | |
88 | Низший общий предок | С++ | На) | Ой) | Середина | РПИ | |
175 | Инвертировать двоичное дерево | С++ | На) | Ой) | Легкий | ЛитКод | |
442 | Реализация Trie | С++ | На) | О(1) | Середина | ЛитКод | Три |
Куча
# | Заголовок | Решение | Время | Космос | Сложность | Ярлык | Примечание |
---|
12 | Мин. стек | С++ | На) | О(1) | Середина | ЛитКод, ЭПИ | |
40 | Реализация очереди двумя стеками | С++ | O(1), амортизированный | На) | Середина | РПИ | |
66 | Обход предзаказа двоичного дерева | С++ | На) | О(1) | Легкий | ЛитКод, ЭПИ | Morris Traversal |
67 | Обход по порядку двоичного дерева | С++ | На) | О(1) | Легкий | ЛитКод, ЭПИ | Morris Traversal |
68 | Обход постпорядка двоичного дерева | С++ | На) | О(1) | Легкий | ЛитКод, ЭПИ | Morris Traversal |
122 | Самый большой прямоугольник на гистограмме | С++ | На) | На) | Жесткий | ЛитКод, ЭПИ | Восходящий стек |
126 | Макс Три | С++ | На) | На) | Жесткий | | Нисходящий стек |
367 | Построение дерева выражений | С++ | На) | На) | Жесткий | | |
368 | Оценка выражения | С++ | На) | На) | Жесткий | | |
369 | Преобразование выражения в польскую запись | С++ | На) | На) | Жесткий | | |
370 | Преобразование выражения в обратную польскую запись | С++ | На) | На) | Жесткий | | |
421 | Упростить путь | С++ | На) | На) | Середина | ЛитКод | |
423 | Допустимые скобки | С++ | На) | На) | Легкий | ЛитКод | |
424 | Оцените обратную польскую запись | С++ | На) | На) | Середина | ЛитКод | |
473 | Добавить и найти слово | С++ | О(мин(п, час)) | О(мин(п, час) | Середина | ЛитКод | Три |
510 | Максимальный прямоугольник | С++ | О(м * п) | На) | Жесткий | ЛитКод | Восходящий стек |
528 | Сгладить итератор вложенного списка | С++ | На) | Ой) | Середина | ЛитКод | |
Очередь
# | Заголовок | Решение | Время | Космос | Сложность | Ярлык | Примечание |
---|
362 | Максимум скользящего окна | С++ | На) | Хорошо) | Жесткий | РПИ | Деке, Хитрый |
Куча
# | Заголовок | Решение | Время | Космос | Сложность | Ярлык | Примечание |
---|
4 | Уродливый номер II | С++ | На) | О(1) | Середина | CTCI | BST, куча |
81 | Медиана потока данных | С++ | О(нлогн) | На) | Жесткий | РПИ | BST, куча |
130 | Куча | С++ | На) | О(1) | Середина | | |
364 | Улавливание дождевой воды II | С++ | O(m * n * (logm + logn)) | О(м * п) | Жесткий | | БФС, Куча, Хитрость |
518 | Супер уродливый номер | С++ | О(п * к) | О (п + к) | Середина | ЛитКод | BST, куча |
Хэш-таблицы
# | Заголовок | Решение | Время | Космос | Сложность | Ярлык | Примечание |
---|
56 | 2 Сумма | С++ | На) | На) | Середина | ЛитКод | |
124 | Самая длинная последовательная последовательность | С++ | На) | На) | Середина | ЛитКод, ЭПИ | |
128 | Хэш-функция | С++ | На) | О(1) | Легкий | | |
129 | Перефразирование | С++ | На) | На) | Середина | | |
138 | Сумма подмассива | С++ | На) | На) | Легкий | | |
186 | Максимальное количество очков на линии | С++ | О(п^2) | На) | Середина | ЛитКод | |
211 | Перестановка строк | С++ | На) | О(1) | Легкий | | |
384 | Самая длинная подстрока без повторяющихся символов | С++ | На) | О(1) | Середина | ЛитКод, ЭПИ | |
386 | Самая длинная подстрока, содержащая не более K различных символов | С++ | На) | На) | Середина | | |
432 | Найдите компонент слабой связности в ориентированном графе | С++ | О(нлогн) | На) | Середина | | Союз Найти |
434 | Количество островов II | С++ | Хорошо) | Хорошо) | Жесткий | | Союз Найти |
488 | Счастливое число | С++ | Хорошо) | Хорошо) | Легкий | ЛитКод | |
547 | Пересечение двух массивов | С++ | О (м + п) | О(мин(м, п)) | Легкий | ЭПИ, ЛитКод | Два указателя, двоичный поиск |
548 | Пересечение двух массивов II | С++ | О (м + п) | О(мин(м, п)) | Легкий | ЭПИ, ЛитКод | Два указателя, двоичный поиск |
Структура данных
# | Заголовок | Решение | Время | Космос | Сложность | Ярлык | Примечание |
---|
134 | LRU-кэш | С++ | О(1) | Хорошо) | Жесткий | ЛитКод, ЭПИ | Список, Хэш |
Математика
# | Заголовок | Решение | Время | Космос | Сложность | Ярлык | Примечание |
---|
2 | Завершающие нули | С++ | О(1) | О(1) | Легкий | ЛитКод | |
3 | Количество цифр | С++ | О(1) | О(1) | Середина | CTCI | |
114 | Уникальные пути | С++ | О(мин(м, п)) | О(1) | Легкий | LeetCode, CTCI | ДП, Математика |
163 | Уникальные деревья двоичного поиска | С++ | На) | О(1) | Середина | CTCI | DP, математика, Catalan Number |
180 | Двоичное представление | С++ | О(1) | О(1) | Жесткий | CTCI | |
197 | Индекс перестановки | С++ | О(п^2) | О(1) | Легкий | | |
198 | Индекс перестановки II | С++ | О(п^2) | На) | Середина | | |
394 | Монеты в линии | С++ | О(1) | О(1) | Легкий | | |
411 | Код Грея | С++ | О (2 ^ п) | О(1) | Середина | ЛитКод | |
413 | Обратное целое число | С++ | О(1) | О(1) | Середина | ЛитКод | |
414 | Разделить два целых числа | С++ | О(1) | О(1) | Середина | ЛитКод | |
418 | Целое число в римский | С++ | На) | О(1) | Середина | ЛитКод | |
419 | Роман в целое число | С++ | На) | О(1) | Середина | ЛитКод | |
428 | Пау(х, п) | С++ | О(1) | О(1) | Середина | ЛитКод | |
445 | Косинусное сходство | С++ Питон | На) | О(1) | Легкий | | |
517 | Уродливый номер | С++ | О(1) | О(1) | Легкий | CTCI, ЛитКод | |
Сортировать
# | Заголовок | Решение | Время | Космос | Сложность | Ярлык | Примечание |
---|
5 | K-й самый большой элемент | С++ | О (п) ~ О (п ^ 2) | О(1) | Середина | РПИ | Два указателя, быстрая сортировка |
80 | медиана | С++ | На) | О(1) | Легкий | РПИ | |
139 | Ближайшая сумма подмассива | С++ | О(нлогн) | На) | Середина | | Сортировать |
143 | Сортировка цветов II | С++ | На) | О(1) | Середина | | |
148 | Сортировать цвета | С++ | На) | О(1) | Середина | ЛитКод | |
156 | Объединить интервалы | С++ | О(нлогн) | О(1) | Легкий | ЛитКод, ЭПИ | |
184 | Самое большое число | С++ | О(нлогн) | О(1) | Середина | ЛитКод | |
366 | Фибоначчи | С++ | На) | О(1) | Легкий | | |
379 | Переупорядочить массив, чтобы построить минимальное число | С++ | О(нлогн) | О(1) | Середина | ЛитКод | |
387 | Самая маленькая разница | С++ | O(max(m, n) * log(min(m, n))) | О(1) | Середина | | Два указателя, двоичный поиск |
399 | Проблема с гайками и болтами | С++ | О(нлогн) | О(вход) | Середина | | Быстрая сортировка |
400 | Максимальный разрыв | С++ Питон | На) | На) | Жесткий | ЛитКод | Ведровая сортировка |
463 | Сортировка целых чисел | С++ | О(п^2) | О(1) | Легкий | | Сортировка вставками, сортировка выбором, пузырьковая сортировка |
464 | Сортировка целых чисел II | С++ | О(нлогн) | На) | Легкий | | Сортировка слиянием, пирамидальная сортировка, быстрая сортировка |
507 | Wiggle Сортировка II | С++ | O(n) в среднем | О(1) | Середина | ЛитКод | Три раздела |
508 | Покачивание сортировки | С++ | На) | О(1) | Середина | ЛитКод | |
Рекурсия
# | Заголовок | Решение | Время | Космос | Сложность | Ярлык | Примечание |
---|
22 | Сгладить список | С++ | На) | Ой) | Легкий | | |
72 | Постройте двоичное дерево из обхода в прямом и обратном порядке | С++ | На) | На) | Середина | ЛитКод, ЭПИ | |
73 | Постройте двоичное дерево из предзаказа и обхода в обратном порядке | С++ | На) | На) | Середина | ЛитКод, ЭПИ | |
93 | Сбалансированное двоичное дерево | С++ | На) | Ой) | Легкий | ЛитКод | |
94 | Максимальная сумма путей двоичного дерева | С++ | На) | Ой) | Середина | ЛитКод | |
95 | Проверка двоичного дерева поиска | С++ | На) | Ой) | Середина | ЛитКод | |
97 | Максимальная глубина двоичного дерева | С++ | На) | Ой) | Легкий | ЛитКод | |
131 | Схема здания | С++ Питон | О(нлогн) | На) | Жесткий | РПИ | Сортировать, лучшее время |
140 | Быстрая мощность | С++ | О(вход) | О(1) | Середина | | |
155 | Минимальная глубина двоичного дерева | С++ | На) | Ой) | Легкий | ЛитКод | |
164 | Уникальные двоичные деревья поиска II | С++ | O(n * 4^n / n^(3/2)) | На) | Середина | ЛитКод | |
177 | Преобразование отсортированного массива в двоичное дерево поиска минимальной высоты | С++ | На) | О(вход) | Легкий | ЛитКод | |
201 | Построение дерева сегментов | С++ | На) | Ой) | Середина | | Дерево сегментов, BST |
202 | Запрос дерева сегментов | С++ | Ой) | Ой) | Середина | | Дерево сегментов, BST |
203 | Изменение дерева сегментов | С++ | Ой) | Ой) | Середина | | Дерево сегментов, BST |
205 | Минимальное количество интервалов | С++ | построить дерево: O(n) , запрос: (h) | Ой) | Жесткий | | Дерево сегментов, BST |
206 | Интервальная сумма | С++ | дерево построения: O(n) , запрос: O(logn) | На) | Жесткий | | Дерево сегментов, BIT |
207 | Интервальная сумма II | С++ | построить дерево: O(n) , запрос: O(logn) , изменить: O(logn) | На) | Жесткий | | Дерево сегментов, BIT |
245 | Поддерево | С++ | О(м * п) | О(1) | Легкий | | Morris Traversal |
247 | Запрос дерева сегментов II | С++ | Ой) | Ой) | Жесткий | | Дерево сегментов, BST |
248 | Подсчет меньшего числа | С++ | дерево построения: O(n) , запрос: O(logn) | Ой) | Середина | | Дерево сегментов, BST |
371 | Печать чисел с помощью рекурсии | С++ | На) | На) | Середина | | |
375 | Клонировать двоичное дерево | С++ | На) | Ой) | Легкий | | |
378 | Преобразование двоичного дерева поиска в двусвязный список | С++ | На) | Ой) | Середина | | |
439 | Построение дерева сегментов II | С++ | На) | Ой) | Середина | | Дерево сегментов, BST |
453 | Свести двоичное дерево в связанный список | С++ | На) | Ой) | Легкий | ЛитКод | |
469 | Идентичное двоичное дерево | С++ | На) | Ой) | Легкий | | |
532 | Обратные пары | С++ | О(нлогн) | На) | Середина | вариант счета меньшего числа перед самим собой | BIT, сортировка слиянием |
535 | Грабитель дома III | С++ | На) | Ой) | Середина | ЛитКод | |
Бинарный поиск
# | Заголовок | Решение | Время | Космос | Сложность | Ярлык | Примечание |
---|
14 | Первая позиция цели | С++ | О(вход) | О(1) | Легкий | | |
28 | Поиск 2D-матрицы | С++ | О(логм + логн) | О(1) | Легкий | ЛитКод | |
60 | Поиск позиции вставки | С++ | О(вход) | О(1) | Легкий | ЛитКод | |
61 | Поиск диапазона | С++ | О(вход) | О(1) | Середина | ЛитКод | |
62 | Поиск в повернутом отсортированном массиве | С++ | О(вход) | О(1) | Середина | ЛитКод | |
63 | Поиск в повернутом отсортированном массиве II | С++ | О(вход) | О(1) | Середина | ЛитКод | |
65 | Медиана двух отсортированных массивов | С++ | O(log(min(m, n))) | О(1) | Жесткий | ЛитКод, ЭПИ | Сложный |
74 | Первая плохая версия | С++ | О(вход) | О(1) | Середина | | |
75 | Найти пиковый элемент | С++ | О(вход) | О(1) | Середина | ЛитКод | |
76 | Самая длинная возрастающая подпоследовательность | С++ | О(нлогн) | На) | Середина | CTCI | |
141 | Квадрат(x) | С++ | О(вход) | О(1) | Легкий | ЛитКод | |
159 | Найти минимум в повернутом отсортированном массиве | С++ | О(вход) | О(1) | Середина | ЛитКод | |
160 | Найти минимум в повернутом отсортированном массиве II | С++ | О(вход) | О(1) | Середина | ЛитКод | |
183 | Резьба по дереву | С++ | О (nlogL) | О(1) | Середина | | |
390 | Найти пиковый элемент II | С++ Java Питон | О (м + п) | О(1) | Жесткий | | |
437 | Копирование книг | С++ | О (нлогп) | О(1) | Жесткий | УВА 714 | |
Поиск в ширину
# | Заголовок | Решение | Время | Космос | Сложность | Ярлык | Примечание |
---|
69 | Обход порядка на уровне двоичного дерева | С++ | На) | На) | Середина | ЛитКод | БФС |
70 | Обход порядка на уровне двоичного дерева II | С++ | На) | На) | Середина | ЛитКод | БФС |
71 | Обход порядка зигзагообразного уровня двоичного дерева | С++ | На) | На) | Середина | ЛитКод | БФС |
120 | Словесная лестница | С++ | О(п * д) | О (д) | Середина | ЛитКод | БФС |
121 | Словесная лестница II | С++ | О(п * д) | О (д) | Жесткий | ЛитКод | БФС, Back Trace |
127 | Топологическая сортировка | С++ | О(|В|+|Е|) | О(|Е|) | Середина | | ДФС, БФС |
137 | Клонировать график | С++ | О(|В|+|Е|) | О(|В|) | Середина | | БФС |
176 | Маршрут между двумя узлами в графе | С++ | На) | На) | Середина | | ДФС, БФС |
178 | Граф допустимого дерева | С++ | О(|V| + |E|) | О(|V| + |E|) | Середина | ЛитКод | |
431 | Найдите связный компонент в неориентированном графе | С++ | На) | На) | Середина | | БФС |
477 | Окружающие регионы | С++ | О(м * п) | О (м + п) | Середина | ЛитКод | |
Поиск в глубину
# | Заголовок | Решение | Время | Космос | Сложность | Ярлык | Примечание |
---|
90 | К Сумма II | С++ | О(к * С(п, к)) | Хорошо) | Середина | | |
376 | Сумма путей двоичного дерева | С++ | На) | Ой) | Легкий | ЛитКод | |
433 | Количество островов | С++ | О(м * п) | О(м * п) | Легкий | ЛитКод | ДФС |
480 | Пути двоичного дерева | С++ | О(п * ч) | Ой) | Легкий | ЛитКод | |
Возврат
# | Заголовок | Решение | Время | Космос | Сложность | Ярлык | Примечание |
---|
15 | Перестановки | С++ | О(н*н!) | На) | Середина | ЛитКод, ЭПИ | |
16 | Перестановки II | С++ | О(н*н!) | На) | Середина | ЛитКод, ЭПИ | |
17 | Подмножества | С++ | О(п * 2^п) | О(1) | Середина | ЛитКод | |
18 | Подмножества II | С++ | О(п * 2^п) | О(1) | Середина | ЛитКод | |
33 | Н-Куинс | С++ | О(н*н!) | На) | Середина | ЛитКод, ЭПИ | |
34 | Н-Куинс II | С++ | О(н*н!) | На) | Середина | ЛитКод, ЭПИ | |
123 | Поиск слов | С++ | О(м * п * л) | О (л) | Середина | ЛитКод | |
132 | Поиск слов II | С++ | О(м * п * л) | О (л) | Жесткий | | Три, ДФС |
135 | Сумма комбинации | С++ | О (к * п^к) | Хорошо) | Середина | ЛитКод | ДФС |
136 | Палиндромное разбиение | С++ | О (2 ^ п) | На) | Легкий | ЛитКод, ЭПИ | |
152 | Комбинации | С++ | О (к * п^к) | Хорошо) | Середина | ЛитКод, ЭПИ | |
153 | Комбинированная сумма II | С++ | О(к * С(п, к)) | Хорошо) | Середина | ЛитКод | ДФС |
425 | Буквенные комбинации номера телефона | С++ | О(п * 4^п) | На) | Середина | ЛитКод | |
426 | Восстановить IP-адреса | С++ | О(1) | О(1) | Середина | ЛитКод | |
427 | Создать круглые скобки | С++ | О(4^n / n^(3/2)) | На) | Середина | ЛитКод | |
Двоичные деревья поиска
# | Заголовок | Решение | Время | Космос | Сложность | Ярлык | Примечание |
---|
11 | Диапазон поиска в двоичном дереве поиска | С++ | На) | Ой) | Середина | РПИ | |
86 | Итератор дерева двоичного поиска | С++ | О(1) | Ой) | Жесткий | ЛитКод | |
87 | Удалить узел в дереве двоичного поиска | С++ | Ой) | Ой) | Жесткий | | |
249 | Счет меньшего числа перед самим собой | С++ | О(нлогн) | На) | Жесткий | | BST, BIT, разделяй и властвуй, сортировка слиянием |
360 | Медиана скользящего окна | С++ | О(нлогв) | О (ш) | Жесткий | | BST, Хитрый |
391 | Количество самолетов в небе | С++ | О(нлогн) | На) | Легкий | | BST, куча |
401 | K-е наименьшее число в отсортированной матрице | С++ | O(klog(min(m, n, k))) | О(мин(м, п, к)) | Середина | | BST, куча |
Динамическое программирование
# | Заголовок | Решение | Время | Космос | Сложность | Ярлык | Примечание |
---|
20 | Сумма кубиков | С++ | О(п^2) | На) | Жесткий | | |
29 | Чередование строки | С++ | О(м * п) | О(мин(м, п)) | Середина | РПИ | |
43 | Максимальный подмассив III | С++ | О(к * п) | О(к * п) | Жесткий | | |
77 | Самая длинная общая подпоследовательность | С++ | О(м * п) | О(мин(м, п)) | Середина | | |
79 | Самая длинная общая подстрока | С++ | О(м * п) | О(мин(м, п)) | Середина | | |
89 | К Сумма | С++ | О(к * п * т) | О(п * т) | Жесткий | | |
91 | Минимальная стоимость корректировки | С++ | О(к * п * т) | Хорошо) | Середина | | |
92 | Рюкзак | С++ | О(м * п) | О (м) | Легкий | | |
107 | Разрыв слов | С++ | О(п * л^2) | На) | Середина | ЛитКод, ЭПИ | |
108 | Палиндромное разбиение II | С++ | О(п^2) | На) | Середина | ЛитКод, ЭПИ | |
109 | Треугольник | С++ | На) | На) | Легкий | ЛитКод, ЭПИ | |
110 | Минимальная сумма пути | С++ | О(м * п) | О(мин(м, п)) | Легкий | ЛитКод, ЭПИ | |
111 | Подъем по лестнице | С++ | О(вход) | О(1) | Легкий | ЛитКод | |
115 | Уникальные пути II | С++ | О(м * п) | О(мин(м, п)) | Легкий | LeetCode, CTCI | ДП, Математика |
118 | Различные подпоследовательности | С++ | О(м * п) | О (м) | Середина | ЛитКод | ДП |
119 | Изменить расстояние | С++ | О(м * п) | О(мин(м, п)) | Середина | LeetCode, CTCI | ДП |
125 | Рюкзак II | С++ | О(м * п) | О (м) | Середина | | |
149 | Лучшее время для покупки и продажи акций | С++ | На) | О(1) | Середина | ЛитКод, ЭПИ | |
150 | Лучшее время для покупки и продажи акций II | С++ | На) | О(1) | Середина | ЛитКод, ЭПИ | |
151 | Лучшее время для покупки и продажи акций III | С++ | На) | О(1) | Середина | ЛитКод, ЭПИ | |
154 | Сопоставление регулярных выражений | С++ | О(м * п) | О (м) | Жесткий | ЛитКод | ДП, Рекурсия |
168 | Лопнувшие воздушные шары | С++ | О(п^3) | О(п^2) | Середина | ЛитКод | |
191 | Максимальный подмассив продуктов | С++ | На) | О(1) | Середина | ЛитКод | |
392 | грабитель дома | С++ | На) | О(1) | Середина | ЛитКод | |
393 | Лучшее время для покупки и продажи акций IV | С++ | О(к * п) | Хорошо) | Жесткий | ЛитКод, ЭПИ | |
395 | Монеты в строке II | С++ | На) | О(1) | Середина | | |
396 | Монеты в строке III | С++ | О(п^2) | На) | Жесткий | | |
397 | Самая длинная возрастающая непрерывная подпоследовательность | С++ | На) | О(1) | Легкий | | |
398 | Самая длинная возрастающая непрерывная подпоследовательность II | С++ | О(м * п) | О(м * п) | Жесткий | | |
403 | Непрерывная сумма подмассивов II | С++ | На) | О(1) | Середина | РПИ | |
430 | Скрэмбл-строка | С++ | О(п^4) | О(п^3) | Жесткий | ЛитКод | |
435 | Проблема с почтовым отделением | С++ | О (к * п^2) | На) | Жесткий | ПКУ 1160 | |
436 | Максимальная площадь | С++ | О(м * п) | На) | Середина | ЛитКод | |
512 | Способы декодирования | С++ | На) | О(1) | Середина | ЛитКод | |
513 | Идеальные квадраты | С++ | O(n * sqrt(n)) | На) | Середина | ЛитКод | |
514 | Краска Забор | С++ | На) | О(1) | Легкий | ЛитКод | |
515 | Краска Дом | С++ | На) | О(1) | Середина | ЛитКод | |
516 | Краска Дом II | С++ | О(п * к) | Хорошо) | Жесткий | ЛитКод | |
534 | Грабитель дома II | С++ | На) | О(1) | Середина | ЛитКод | |
564 | Рюкзак VI | С++ | О(п * т) | О(т) | Середина | | |
Жадный
# | Заголовок | Решение | Время | Космос | Сложность | Ярлык | Примечание |
---|
41 | Максимальный подмассив | С++ | На) | О(1) | Легкий | ЛитКод | |
42 | Максимальный подмассив II | С++ | На) | На) | Середина | | |
44 | Минимальный подмассив | С++ | На) | О(1) | Легкий | | |
45 | Максимальная разница в подмассивах | С++ | На) | На) | Середина | | |
116 | Прыжок игры | С++ | На) | О(1) | Середина | ЛитКод | |
117 | Игра в прыжок II | С++ | На) | О(1) | Середина | ЛитКод | |
182 | Удалить цифры | С++ | На) | На) | Середина | | |
187 | АЗС | С++ | На) | О(1) | Легкий | ЛитКод | |
192 | Соответствие подстановочным знакам | С++ | О (м + п) | О(1) | Жесткий | ЛитКод | Жадность, ДП, Рекурсия |
402 | Непрерывная сумма подмассивов | С++ | На) | О(1) | Середина | РПИ | |
412 | Конфеты | С++ | На) | На) | Жесткий | ЛитКод | Жадный |
552 | Создать максимальное количество | С++ | O(k * (m + n + k)) ~ O(k * (m + n + k^2)) | О (м + п + к^2) | Жесткий | ЛитКод | Жадный, ДП |
ОО Дизайн
# | Заголовок | Решение | Время | Космос | Сложность | Ярлык | Примечание |
---|
204 | Синглтон | С++ | О(1) | О(1) | Легкий | | |
208 | Перегрузка оператора присваивания (только C++) | С++ | На) | О(1) | Середина | | |
496 | Фабрика игрушек | С++ | О(1) | О(1) | Легкий | | |
497 | Фабрика форм | С++ | О(1) | О(1) | Легкий | | |
498 | Парковка | С++ | О(п * м * к) | О(п * м * к) | Жесткий | CTCI | ОО-дизайн, идиома Pimpl, умный указатель |
Проектирование системы
# | Заголовок | Решение | Время | Космос | Сложность | Ярлык | Примечание |
---|
501 | Мини Твиттер | С++ | О(клогу) | О (т + е) | Середина | | |