| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Категория | Ссылка | Заметки | |||||||||||||||||||||||
2 | List | https://leetcode.com/problems/linked-list-cycle/ | Создаем Set с ObjectIdentifier и проверяем был ли такой объект | |||||||||||||||||||||||
3 | List | https://leetcode.com/problems/add-two-numbers/ | ||||||||||||||||||||||||
4 | Array | https://leetcode.com/problems/longest-subarray-of-1s-after-deleting-one-element/ | С помощью двух указателей и одного указателя на ноль проверям подмассивы. Если указатель на ноль > левого указателя, то находим размер последовательности. и сдвигаем указатель левого до последнего указателя нуля + 1. Не забываем после цикла расчитать разницу указателей | |||||||||||||||||||||||
5 | Array | https://leetcode.com/problems/summary-ranges/description/ | Решать с помощью двух указателей. Один идет вперед и проверяет не больше ли другого на 1. Если больше, то запускается условие, которое проверяет не равен ли правый указатель левому. После выхода из цикла доп поверка на разницу индексов | |||||||||||||||||||||||
6 | Array | https://leetcode.com/problems/string-compression/description/ | берем две переменных: char, count идем переменной и если она отличается от прошлой, то берем предыдущий индекс и прибавляем к символу + строке. после выхода из цикла делаем такую проверку с последним символом | |||||||||||||||||||||||
7 | Array | https://leetcode.com/problems/subarray-sum-equals-k/ | Используем префиксную сумму для подсчёта суммы элементов от начала массива до текущей позиции. Если разница между текущей префиксной суммой и k уже встречалась ранее, значит, существует подмассив, сумма которого равна k .В хэштаблице храним количество раз, сколько раз каждая префиксная сумма встречалась. Это позволяет мгновенно узнать, существует ли нужная сумма. | |||||||||||||||||||||||
8 | Array | https://leetcode.com/problems/intersection-of-two-arrays-ii/ | Используем словарь, куда записываем все числа и кол-во раз, которые используются. Проходим вторым массивом по первому массиву и смотрим на значения | |||||||||||||||||||||||
9 | https://leetcode.com/problems/permutation-in-string/description/ | Используем две хэшмапы, где вторую двигаем с помощью скользящего окна. Удаляем элемент по левому поинтеру и добавляем по правому | ||||||||||||||||||||||||
10 | String | https://leetcode.com/problems/is-subsequence/ | Делаем два указателя, где если они равны к одному символу, то двигаем левый влево. В конце делаем проверку левого указателя и == кол-ву символов в первой строке | |||||||||||||||||||||||
11 | String | https://leetcode.com/problems/group-anagrams/ | Создаем словарь, где ключ — это отсортированный элемент, а значение — это массив групп. | |||||||||||||||||||||||
12 | String | https://leetcode.com/problems/find-all-anagrams-in-a-string/ | Даны две строки s и p, верните массив всех начальных индексов анаграмм p в s. Вы можете вернуть ответ в любом порядке. В этом решении мы делаем два словаря: 1. Первый словарь — это анаграмма, которую нужно найти в строке 2. Второй словарь скользящий. Он начинает двигаться вправо и, если длина правого указателя будет равна длине второй строке, то начинаем проверять условие: 1. если собранный словарь равен входящему словарю палиндрома, то добавляем индекс в результат 2. в этом же условии уменьшаем значение символа по левому указателю на 1. Проверяем, что если оно равно 0, то удаляем | |||||||||||||||||||||||
13 | String | https://leetcode.com/problems/valid-anagram/ | Сортируем строки или берем два словаря и сравниваем | |||||||||||||||||||||||
14 | Array | https://leetcode.com/problems/maximum-subarray/ | Имеем две переменные: текущая и максимальная сумма. Проводим линейный цикл с сравнением текущей и максимальной; Если текущая сумма < 0, то обнуляем текущую | |||||||||||||||||||||||
15 | String | https://leetcode.com/problems/minimum-number-of-steps-to-make-two-strings-anagram/description/ | ||||||||||||||||||||||||
16 | Linked List | https://leetcode.com/problems/reverse-linked-list/ | создать две ноды: current и prev. Запустить цикл, пока current != nil. Создать переменную next. Добавить к current.next = prev. А prev = current. Где current = next. Возвращаем prev | |||||||||||||||||||||||
17 | Array | https://leetcode.com/problems/line-reflection/ | // создаем две переменных minX, maxX, а также set из точек. // Проходимся по всем точкам и находим minX, maxX. Также добавляем точки в set. // находим симитричную линию через формулу reflectionLine = minX + maxX. // проходимся по всем точкам и ищем в сете симетричную точку reflectionLine - point[0] // если такой нет, то возвращаем false | |||||||||||||||||||||||
18 | String | https://leetcode.com/problems/isomorphic-strings | сделать два словаря, в ключ которых будет класться символ строки, а в значение символ соседней строки. в цикле добавляем условие, если значения символа != значению второго символа, то возвращаем false | |||||||||||||||||||||||
19 | String | https://leetcode.com/problems/valid-palindrome-ii/ | проверяем на палиндром вначале: идем двумя указателями с начала и конца. Если левый индекс больше или равно правого, то возвращаем true. Если обнаружены несовпадающие символы, то удаляем либо символ слева, либо символ справа, и проверяем оставшуюся строку на палиндром. | |||||||||||||||||||||||
20 | Array | https://leetcode.com/problems/longest-continuous-increasing-subsequence/description | взять две переменных current & max и идти последовательно по циклу смотря больше ли текущий предыдущего, если так, то добавляем последовательность в результат. Если нет, то спрасываем текущий счетчик | |||||||||||||||||||||||
21 | https://leetcode.com/problems/merge-intervals/ | |||||||||||||||||||||||||
22 | Array | https://leetcode.com/problems/best-time-to-buy-and-sell-stock/ | Решение с помощью метода скользящего окна. Двигаем правый указатель, а левый держим на самом маленьком элементе. Если значение правого указателя меньше значения левого, то меняем левый на правый | |||||||||||||||||||||||
23 | https://leetcode.com/problems/shortest-way-to-form-string/ | |||||||||||||||||||||||||
24 | Array | https://leetcode.com/problems/monotonic-array/ | Нужно сделать два флага, которые определят возрастающая или убывающая последовательность. Пройтись в цикле и отключить, если встречаем противоположное значение. Результатом будут эти два флага | |||||||||||||||||||||||
25 | Array | https://leetcode.com/problems/squares-of-a-sorted-array/description/ | Берем левый и правый указатель, а также указатель для записи = right. Запускаем цикл, пока основной указатель >= 0. Внутри цикла делаем абсолютное сравнение по левому и правому значению, если левое больше правого, то записываем в индекс квадрат левого числа, если правого — то прового. двигаем основной указатель влево | |||||||||||||||||||||||
26 | Array | https://leetcode.com/problems/max-consecutive-ones-iii/description/ | идет два указателя left, right и счетчик допустимых нулей. Идем по массиву и считаем количество нулей. если кол-во нулей больше чем k, то двигаем левый указатель, пока zeroCount < k. В конце массива вычисляем длину последовательности | |||||||||||||||||||||||
27 | Array | https://leetcode.com/problems/running-sum-of-1d-array/ | проходим каждый элемент складывая с предыдущим | |||||||||||||||||||||||
28 | Array | https://leetcode.com/problems/minimum-value-to-get-positive-step-by-step-sum/ | Чтобы все суммы оставались положительными, нужно компенсировать наихудшую (минимальную) промежуточную сумму, сдвинув её к 1 . Это обеспечивается добавлением |result| + 1 к начальному значению. | |||||||||||||||||||||||
29 | ||||||||||||||||||||||||||
30 | ||||||||||||||||||||||||||
31 | ||||||||||||||||||||||||||
32 | ||||||||||||||||||||||||||
33 | ||||||||||||||||||||||||||
34 | ||||||||||||||||||||||||||
35 | ||||||||||||||||||||||||||
36 | ||||||||||||||||||||||||||
37 | ||||||||||||||||||||||||||
38 | ||||||||||||||||||||||||||
39 | ||||||||||||||||||||||||||
40 | ||||||||||||||||||||||||||
41 | ||||||||||||||||||||||||||
42 | ||||||||||||||||||||||||||
43 | ||||||||||||||||||||||||||
44 | ||||||||||||||||||||||||||
45 | ||||||||||||||||||||||||||
46 | ||||||||||||||||||||||||||
47 | ||||||||||||||||||||||||||
48 | ||||||||||||||||||||||||||
49 | ||||||||||||||||||||||||||
50 | ||||||||||||||||||||||||||
51 | ||||||||||||||||||||||||||
52 | ||||||||||||||||||||||||||
53 | ||||||||||||||||||||||||||
54 | ||||||||||||||||||||||||||
55 | ||||||||||||||||||||||||||
56 | ||||||||||||||||||||||||||
57 | ||||||||||||||||||||||||||
58 | ||||||||||||||||||||||||||
59 | ||||||||||||||||||||||||||
60 | ||||||||||||||||||||||||||
61 | ||||||||||||||||||||||||||
62 | ||||||||||||||||||||||||||
63 | ||||||||||||||||||||||||||
64 | ||||||||||||||||||||||||||
65 | ||||||||||||||||||||||||||
66 | ||||||||||||||||||||||||||
67 | ||||||||||||||||||||||||||
68 | ||||||||||||||||||||||||||
69 | ||||||||||||||||||||||||||
70 | ||||||||||||||||||||||||||
71 | ||||||||||||||||||||||||||
72 | ||||||||||||||||||||||||||
73 | ||||||||||||||||||||||||||
74 | ||||||||||||||||||||||||||
75 | ||||||||||||||||||||||||||
76 | ||||||||||||||||||||||||||
77 | ||||||||||||||||||||||||||
78 | ||||||||||||||||||||||||||
79 | ||||||||||||||||||||||||||
80 | ||||||||||||||||||||||||||
81 | ||||||||||||||||||||||||||
82 | ||||||||||||||||||||||||||
83 | ||||||||||||||||||||||||||
84 | ||||||||||||||||||||||||||
85 | ||||||||||||||||||||||||||
86 | ||||||||||||||||||||||||||
87 | ||||||||||||||||||||||||||
88 | ||||||||||||||||||||||||||
89 | ||||||||||||||||||||||||||
90 | ||||||||||||||||||||||||||
91 | ||||||||||||||||||||||||||
92 | ||||||||||||||||||||||||||
93 | ||||||||||||||||||||||||||
94 | ||||||||||||||||||||||||||
95 | ||||||||||||||||||||||||||
96 | ||||||||||||||||||||||||||
97 | ||||||||||||||||||||||||||
98 | ||||||||||||||||||||||||||
99 | ||||||||||||||||||||||||||
100 |