LeetCode (easy) Flashcards

(20 cards)

1
Q

Two Sum (https://leetcode.com/problems/two-sum)

Дан массив целых чисел nums и целое число target. Вернуть индексы двух чисел, чтобы их сумма давала target.

A

Решать с помощью разницы target с элементами массива, используя карту.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Merge Sorted Array (https://leetcode.com/problems/merge-sorted-array)

Вам даны два целочисленных массива nums1и nums2, отсортированных в неубывающем порядке, и два целых числа m и n, представляющие количество элементов в nums1 и nums2 соответственно.
Merge nums1 and nums2 into a single array sorted in non-decreasing order.

A

Два указателя в разных массивах.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Remove Duplicates from Sorted Array (ЗАБЫЛ, ПРОРЕШАТЬ!) (https://leetcode.com/problems/remove-duplicates-from-sorted-array)

Удалить дубликаты из отсортированного массива. Затем вернуть количество уникальных элементов в num

A

Два указателя в массиве.
Левый указатель остается на месте, пока правый не найдет уникальный элемент (отличный от левого), потом догоняет его

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Move Zeroes in Array (https://leetcode.com/problems/move-zeroes)

Дан целочисленный массив nums. Переместить все нулевые элементы в его конец, сохраняя относительный порядок ненулевых элементов.

A

Два указателя в массиве.
Сначала идут вместе до 0, потом левый фиксируется, а правый идет далее до ненулевого, потом swap и левый++.
Смысл в том, что левый после разделения фиксируется на нуле и ждет swap с ненулевым элементом.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Intersection of Two Arrays (https://leetcode.com/problems/intersection-of-two-arrays)

Даны два целочисленных массива nums1и nums2, вернуть массив их пересечение. Каждый элемент в результате должен быть уникальным, и вы можете вернуть результат в любом порядке.

A

Нужно применить Set, с ним все легко. Тут не получится применить два указателя никак (у меня не получилось)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Monotonic Array (ЗАБЫЛ, ПРОРЕШАТЬ!) (https://leetcode.com/problems/monotonic-array)

Определить, является ли массив монотонным (если он либо монотонно возрастает, либо монотонно убывает)

A

Два указателя слева и справа сопровождают итерационный элемент.
Вроде бы все очень просто, но рассмотри случай:
[1, 2, 2, 2, 2, 1]
Тут придется учитывать равенство значений текущего и правого указателя и только в нужный момент двигать левый!

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Valid Anagram (https://leetcode.com/problems/valid-anagram)

Даны две строки s и t, вернуть, true если t - это анаграмма из s, и false в противном случае.
(Анаграмма — это слово или фраза, образованные путем перестановки букв другого слова или фразы, при этом все исходные буквы используются ровно один раз.

A

Использовать карту.

Сделать из строк 2 карты и сравнить.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Longest Palindrome (https://leetcode.com/problems/valid-anagram)

Дана строка s, состоящая из строчных или заглавных букв, вернуть длину самой длинной строки-палиндрома, которую можно построить с помощью этих букв.
Палиндром — это строка, которая одинаково читается слева направо и слева направо.

A

Использовать карту.

Через нее уже прямой логикой просчитывать алгоритм длины палиндрома.
Рассмотри edge-case:
“aaaaaaa” - строка полностью из одного символа

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Longest Common Prefix (https://leetcode.com/problems/longest-common-prefix)

Напишите функцию для поиска самой длинной общей строки префикса среди массива строк.

A

Никакого определенного паттерна, надо придумать алгоритм, нужны знания методов для String

Очень внимательно рассмотреть edge-cases:
- массив пустой
- в массиве строка пустая
- в массиве все строки одинаковые
Различные edge-cases могут давать либо неправильный результат, но скорее IndexOutOfBoundsException

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Add Binary (https://leetcode.com/problems/add-binary)

Даны две двоичные строки a и b, вернуть их сумму в виде двоичной строки.
В помощь: https://calcus.ru/perevod-sistem-schisleniya

A

Ничего сложного, внимательно изучить алгоритм преобразования по сайту.
Также не забыть метод парсинга строки в число

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Valid Palindrome II (https://leetcode.com/problems/valid-palindrome-ii)

Для данной строки s вернуть, может true ли она s быть палиндромом после удаления из нее не более одного символа.
Палиндром — это строка, которая одинаково читается слева направо и слева направо

A

Два указателя в массиве символов строки

Правильно определить алгоритм “удаления” лишнего символа.
И внимательно рассмотреть edge-cases для “удаления”.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Palindrome Linked List (https://leetcode.com/problems/palindrome-linked-list)

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Merge Two Sorted Lists (https://leetcode.com/problems/merge-two-sorted-lists)

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Reverse Linked List (https://leetcode.com/problems/reverse-linked-list)

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Remove Linked List Elements (https://leetcode.com/problems/remove-linked-list-elements)

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Valid Parentheses (https://leetcode.com/problems/valid-parentheses)

17
Q

Invert Binary Tree (https://leetcode.com/problems/invert-binary-tree)

A

https://dev.to/faangmaster/invert-binary-tree-4ghn

18
Q

Diameter of Binary Tree (https://leetcode.com/problems/diameter-of-binary-tree)

19
Q

Binary Tree Vertical Order Traversal (https://dev.to/faangmaster/viertikalnyi-obkhod-binarnogho-dierieva-314-binary-tree-vertical-order-traversal-5801) - решить потом, она middle

20
Q

Добавить задачи на бинарный поиск