Написано: 06.12.2022

Cpp. Задачки для практики.

Иногда используются в качестве вопросов на собеседовании.

Для начинающих

Поразрядный вывод пятизначного числа.

Перевод числа из метров в километры.

Нарисовать домик.

Нарисовать треугольник.

Вывод титульной рамки.

Сравнить два числа.

Увеличить три числа, если есть равные.

Лёгкие

Вычислить алгебраическую сумму.

Вычислить 1^k + 2^k + 3^k + … + N^k

Большая и меньшая цифры числа

LeetCode.Easy

1. Two Sum

9. Числовой палиндром (Palindrome Number)

13. Римское число перевести в десятичное (Roman to Integer)

14. Наибольший общий префикс (Longest Common Prefix)

20. Парные скобки (Valid Parentheses)

21. Объединить два отсортированных списка (Merge Two Sorted Lists)

26. Удалить повторы из отсортированного массива (Remove Duplicates from Sorted Array)

27. Удалить элемент (Remove Element)

35. Найти позицию вставки (Search Insert Position)

70. Подъем по лестнице (Climbing Stairs)

100. Одинаковое дерево (Same Tree)

101. Симметричное дерево (Symmetric Tree)

104. Минимальная глубина бинарного дерева (Maximum Depth of Binary Tree)

110. Сбалансированное двоичное дерево (Balanced Binary Tree)

111. Минимальная глубина бинарного дерева (Minimum Depth of Binary Tree)

118. Треугольник Паскаля (Pascal’s Triangle)

121. Лучшее время для покупки и продажи акций (Best Time to Buy and Sell Stock)

136. Одиночное число (Single Number)

141. Цикл в связанном списке (Linked List Cycle)

160. Пересечение двух связанных списков (Intersection of Two Linked Lists)

206. Переворот связанного списка (Reverse Linked List)

242. Проверка анаграммы (Valid Anagram)

303. Запрос суммы диапазона, неизменяемый (Range Sum Query - Immutable)

374. Больше или меньше (Guess Number Higher or Lower)

643. Максимальный средний подмассив I (Maximum Average Subarray I)

704. Бинарный поиск (Binary Search)

724. Поиск индекса поворота (Find Pivot Index)

1413. Минимальное значение для положительной пошаговой суммы (Minimum Value to Get Positive Step by Step Sum)

1480. Нарастающая сумма массива (Running Sum of 1d Array)

1588. Сумма всех подмассивов нечетной длины (Sum of All Odd Length Subarrays)

1732. Поиск наибольшей высоты (Find the Highest Altitude)

1893. Проверка, все ли числа покрываются отрезками (Check if All the Integers in a Range Are Covered)

1991. Найти срединный индекс массива (Find the Middle Index in Array)

2389. Самая длинная последовательность с суммой (Longest Subsequence With Limited Sum)

2485. Поиск числа поворота (Find the Pivot Integer)

2574. Различия между суммами слева и справа (Left and Right Sum Differences)

LeetCode.Medium

2. Add Two Numbers

3. Наибольшая подстрока без повторов (Longest Substring Without Repeating Characters)

5. Наибольшая палиндромная подстрока (Longest Palindromic Substring)

6. Зигзагное преобразование (Zigzag Conversion)

7. Обратное целое число (Reverse Integer)

8. Преобразование строки в целое число (String to Integer (atoi))

11. Бассейн наибольшего объёма (Container With Most Water)

12. Число записать в римской нотации (Integer to Roman)

15. 3Sum

16. 3Sum Closest

17. Letter Combinations of a Phone Number

18. 4Sum

19. Удалить n-ый узел с конца списка (Remove Nth Node From End of List)

22. Генерировать скобки (Generate Parentheses)

24. Обмен парных узлов (Swap Nodes in Pairs)

28. Найти индекс подстроки (Find the Index of the First Occurrence in a String)

29. Разделить два целых (Divide Two Integers)

31. Следующая перестановка (Next Permutation)

33. Поиск в сдвинутом отсортированном массиве (Search in Rotated Sorted Array)

34. Найти первую и последнюю позицию элемента в отсортированном массиве (Find First and Last Position of Element in Sorted Array)

36. Проверка доски судоку (Valid Sudoku)

38. Посчитай и скажи (Count and Say)

39. Комбинация сумм (Combination Sum)

40. Комбинация сумм II (Combination Sum II)

43. Перемножение строк (Multiply Strings)

45. Игра в прыжки II (Jump Game II)

46. Перестановки (Permutations)

47. Перестановки II (Permutations II)

48. Поворот изображения (Rotate Image)

49. Группировка анаграмм (Group Anagrams)

56. Объединить интервалы (Merge Intervals)

64. Сумма минимального пути (Minimum Path Sum)

74. Поиск в 2D-матрице (Search a 2D Matrix)

81. Поиск в сдвинутом отсортированном массиве II (Search in Rotated Sorted Array II)

113. Сумма путей (Path Sum II)

116. Заполнение правых указателей в каждом узле (Populating Next Right Pointers in Each Node)

122. Лучшее время для покупки и продажи акций II (Best Time to Buy and Sell Stock II)

153. Поиск минимума в сдвинутом отсортированном массиве (Find Minimum in Rotated Sorted Array)

200. Количество островов (Number of Islands)

209. Минимальный размер подмассива суммы (Minimum Size Subarray Sum)

238. Произведение массива, кроме элемента (Product of Array Except Self)

304. Запрос суммы диапазона (Range Sum Query 2D - Immutable)

307. Запрос суммы диапазона, неизменяемый (Range Sum Query - Mutable)

309. Лучшее время для покупки и продажи акций с охлаждением (Best Time to Buy and Sell Stock with Cooldown)

347. K наиболее частых элементов (Top K Frequent Elements)

424. Замена самого длинного повторяющегося символа (Longest Repeating Character Replacement)

438. Найти все анаграммы в строке (Find All Anagrams in a String)

523. Сумма непрерывного подмассива (Continuous Subarray Sum)

525. Непрерывный массив (Contiguous Array)

560. Сумма подмассива, равная K (Subarray Sum Equals K)

567. Перестановки в строке (Permutation in String)

692. K наиболее частых слов (Top K Frequent Words)

714. Лучшее время для покупки и продажи акций с комиссией за транзакцию (Best Time to Buy and Sell Stock with Transaction Fee)

763. Разметка разделов (Partition Labels)

813. Наибольшая сумма средних значений (Largest Sum of Averages)

930. Двоичный подмассив с суммой (Binary Subarrays With Sum)

1466. Изменить порядок маршрутов, чтобы все пути вели к нулевому городу (Reorder Routes to Make All Paths Lead to the City Zero)

2316. Подсчет недостижимой пары узлов в неориентированном графе (Count Unreachable Pairs of Nodes in an Undirected Graph)

LeetCode.Hard

23. Объединить k сортированных списков (Merge k Sorted Lists)

239. Максимум скользящего окна (Sliding Window Maximum)

301. Удаление неверных скобок (Remove Invalid Parentheses)

480. Медиана скользящего окна (Sliding Window Median)

2360. Самый длинный цикл в графе (Longest Cycle in a Graph)

Задачки от Яндекса

28.02.2023

A. Стек с поддержкой максимума.

B. i10n.

23.03.2023

C. Слияние двух последовательностей.

D. Минимальное расстояние между символами.

28.03.2023

E. Удалить повторяющиеся пробелы в строке.

F. Составить вектор из количества совпадающих символов.

Задачи по темам:

Тема Задачи Примечание
prefix sum 1480 303 724 1413 1588 1732 1893 1991 2389 2485 2574 суммирование префиксов (easy)
prefix sum 209 238 304 523 525 560 813 930 суммирование префиксов (medium)
linked lists 23 141 2 206 связанные списки
binary search 704 374 74 33 153 81 бинарный поиск
hash table 136 1 18 49 242 438 хэш-таблица
queue/stack 20 очередь/стек
dfs/bfs 200 301 обход графа в глубину и в ширину
sort 56 сортировка
heap/hash 692 347 куча/хэш
two pointers 11 763 два указателя
sliding window 480 239 424 643 скользящее окно
tree 100 101 110 113 дерево
greedy problems 121 122 714 309 жадные проблемы

Другие темы:

Тема Задачи Примечание
Dynamic Programming 118 Динамическое программирование
Bfs 111 116 126 127 130 133 199 200 207 279 310 752 785 787 827 847 854 934 994 1091 1129 1519 1765 Breadth-First-Search
скользящее окно 30 76 209 424 438 567 904 1004  
два указателя 26 27 125 349 350  
linked lists 160  
Binary indexed tree (дерево Фанвика) 307  

Сложнее

Перекодировка из UTF-8 в Cp-1251.

Об алгоритмах

Информация.

O_n