LeetCode (easy) Flashcards
(20 cards)
Two Sum (https://leetcode.com/problems/two-sum)
Дан массив целых чисел nums и целое число target. Вернуть индексы двух чисел, чтобы их сумма давала target.
Решать с помощью разницы target с элементами массива, используя карту.
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.
Два указателя в разных массивах.
Remove Duplicates from Sorted Array (ЗАБЫЛ, ПРОРЕШАТЬ!) (https://leetcode.com/problems/remove-duplicates-from-sorted-array)
Удалить дубликаты из отсортированного массива. Затем вернуть количество уникальных элементов в num
Два указателя в массиве.
Левый указатель остается на месте, пока правый не найдет уникальный элемент (отличный от левого), потом догоняет его
Move Zeroes in Array (https://leetcode.com/problems/move-zeroes)
Дан целочисленный массив nums. Переместить все нулевые элементы в его конец, сохраняя относительный порядок ненулевых элементов.
Два указателя в массиве.
Сначала идут вместе до 0, потом левый фиксируется, а правый идет далее до ненулевого, потом swap и левый++.
Смысл в том, что левый после разделения фиксируется на нуле и ждет swap с ненулевым элементом.
Intersection of Two Arrays (https://leetcode.com/problems/intersection-of-two-arrays)
Даны два целочисленных массива nums1и nums2, вернуть массив их пересечение. Каждый элемент в результате должен быть уникальным, и вы можете вернуть результат в любом порядке.
Нужно применить Set, с ним все легко. Тут не получится применить два указателя никак (у меня не получилось)
Monotonic Array (ЗАБЫЛ, ПРОРЕШАТЬ!) (https://leetcode.com/problems/monotonic-array)
Определить, является ли массив монотонным (если он либо монотонно возрастает, либо монотонно убывает)
Два указателя слева и справа сопровождают итерационный элемент.
Вроде бы все очень просто, но рассмотри случай:
[1, 2, 2, 2, 2, 1]
Тут придется учитывать равенство значений текущего и правого указателя и только в нужный момент двигать левый!
Valid Anagram (https://leetcode.com/problems/valid-anagram)
Даны две строки s и t, вернуть, true если t - это анаграмма из s, и false в противном случае.
(Анаграмма — это слово или фраза, образованные путем перестановки букв другого слова или фразы, при этом все исходные буквы используются ровно один раз.
Использовать карту.
Сделать из строк 2 карты и сравнить.
Longest Palindrome (https://leetcode.com/problems/valid-anagram)
Дана строка s, состоящая из строчных или заглавных букв, вернуть длину самой длинной строки-палиндрома, которую можно построить с помощью этих букв.
Палиндром — это строка, которая одинаково читается слева направо и слева направо.
Использовать карту.
Через нее уже прямой логикой просчитывать алгоритм длины палиндрома.
Рассмотри edge-case:
“aaaaaaa” - строка полностью из одного символа
Longest Common Prefix (https://leetcode.com/problems/longest-common-prefix)
Напишите функцию для поиска самой длинной общей строки префикса среди массива строк.
Никакого определенного паттерна, надо придумать алгоритм, нужны знания методов для String
Очень внимательно рассмотреть edge-cases:
- массив пустой
- в массиве строка пустая
- в массиве все строки одинаковые
Различные edge-cases могут давать либо неправильный результат, но скорее IndexOutOfBoundsException
Add Binary (https://leetcode.com/problems/add-binary)
Даны две двоичные строки a и b, вернуть их сумму в виде двоичной строки.
В помощь: https://calcus.ru/perevod-sistem-schisleniya
Ничего сложного, внимательно изучить алгоритм преобразования по сайту.
Также не забыть метод парсинга строки в число
Valid Palindrome II (https://leetcode.com/problems/valid-palindrome-ii)
Для данной строки s вернуть, может true ли она s быть палиндромом после удаления из нее не более одного символа.
Палиндром — это строка, которая одинаково читается слева направо и слева направо
Два указателя в массиве символов строки
Правильно определить алгоритм “удаления” лишнего символа.
И внимательно рассмотреть edge-cases для “удаления”.
Palindrome Linked List (https://leetcode.com/problems/palindrome-linked-list)
Merge Two Sorted Lists (https://leetcode.com/problems/merge-two-sorted-lists)
Reverse Linked List (https://leetcode.com/problems/reverse-linked-list)
Remove Linked List Elements (https://leetcode.com/problems/remove-linked-list-elements)
Valid Parentheses (https://leetcode.com/problems/valid-parentheses)
Invert Binary Tree (https://leetcode.com/problems/invert-binary-tree)
https://dev.to/faangmaster/invert-binary-tree-4ghn
Diameter of Binary Tree (https://leetcode.com/problems/diameter-of-binary-tree)
Binary Tree Vertical Order Traversal (https://dev.to/faangmaster/viertikalnyi-obkhod-binarnogho-dierieva-314-binary-tree-vertical-order-traversal-5801) - решить потом, она middle
Добавить задачи на бинарный поиск