#263 Ugly Number
Потренироваться можно тут: leetcode.com/problems/ugly-number/description/
Код решения: pastebin.com/s2ggCtTt
Так же закинул код в комментарий к посту⬇️
Потренироваться можно тут: leetcode.com/problems/ugly-number/description/
Код решения: pastebin.com/s2ggCtTt
Так же закинул код в комментарий к посту
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍3❤2
#40 Combination Sum II
Если в задаче нужно перебрать все возможные комбинации, подмножества или варианты выбора элементов с ограничениями — скорее всего, нужен backtracking.
Мы постепенно собираем текущую комбинацию cur. На каждом шаге решаем: взять очередное число или нет. Если сумма стала равна target — сохраняем ответ. Если уже превысили target — дальше идти нет смысла, откатываемся назад (pop_back()) и пробуем другой вариант.
Почему сначала сортируем массив?
Сортировка очень часто встречается в backtracking, потому что одинаковые элементы оказываются рядом. Благодаря этому их легко пропустить и не получить одинаковые комбинации.
Самая важная строка:
Почему именно j > start?
Потому что мы пропускаем дубликаты только на одном уровне рекурсии. Если на этом уровне уже начали ветку с первым 1, то начинать такую же ветку со второго 1 бессмысленно — получится абсолютно такой же набор комбинаций.
Но на следующем уровне рекурсии второй 1 использовать можно. Именно поэтому условие сравнивается со start, а не просто с 0. Благодаря этому комбинация [1,1,6] появится один раз, а не исчезнет совсем и не продублируется.
Потренироваться можно тут: leetcode.com/problems/combination-sum-ii/description/
Код решения: pastebin.com/EYN7gjfW
Так же закинул код в комментарий к посту⬇️
Если в задаче нужно перебрать все возможные комбинации, подмножества или варианты выбора элементов с ограничениями — скорее всего, нужен backtracking.
Мы постепенно собираем текущую комбинацию cur. На каждом шаге решаем: взять очередное число или нет. Если сумма стала равна target — сохраняем ответ. Если уже превысили target — дальше идти нет смысла, откатываемся назад (pop_back()) и пробуем другой вариант.
Почему сначала сортируем массив?
Сортировка очень часто встречается в backtracking, потому что одинаковые элементы оказываются рядом. Благодаря этому их легко пропустить и не получить одинаковые комбинации.
Самая важная строка:
if (j > start && candidates[j] == candidates[j - 1]) {
continue;
}Почему именно j > start?
Потому что мы пропускаем дубликаты только на одном уровне рекурсии. Если на этом уровне уже начали ветку с первым 1, то начинать такую же ветку со второго 1 бессмысленно — получится абсолютно такой же набор комбинаций.
Но на следующем уровне рекурсии второй 1 использовать можно. Именно поэтому условие сравнивается со start, а не просто с 0. Благодаря этому комбинация [1,1,6] появится один раз, а не исчезнет совсем и не продублируется.
Потренироваться можно тут: leetcode.com/problems/combination-sum-ii/description/
Код решения: pastebin.com/EYN7gjfW
Так же закинул код в комментарий к посту
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3🤝2
#69 Sqrt(x)
Поиск квадратного корня с помощью бинарного поиска. Отличная задача, чтобы понять, как бинарный поиск можно использовать для поиска ответа
Потренироваться можно тут: leetcode.com/problems/sqrtx/
Код решения: pastebin.com/jzYaC82Y
Так же закинул код в комментарий к посту⬇️
Поиск квадратного корня с помощью бинарного поиска. Отличная задача, чтобы понять, как бинарный поиск можно использовать для поиска ответа
Потренироваться можно тут: leetcode.com/problems/sqrtx/
Код решения: pastebin.com/jzYaC82Y
Так же закинул код в комментарий к посту
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2🤝2
#507 Perfect Number
Потренироваться можно тут: leetcode.com/problems/perfect-number/
Код решения 🤡: pastebin.com/yf6ek9eU
Код решения: pastebin.com/WRavmJJF
Так же закинул код в комментарий к посту⬇️
Потренироваться можно тут: leetcode.com/problems/perfect-number/
Код решения 🤡: pastebin.com/yf6ek9eU
Код решения: pastebin.com/WRavmJJF
Так же закинул код в комментарий к посту
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2🤝2
#22 Generate Parentheses
Потренироваться можно тут: leetcode.com/problems/generate-parentheses/description/
Код решения: pastebin.com/mYepPBWi
Так же закинул код в комментарий к посту⬇️
Потренироваться можно тут: leetcode.com/problems/generate-parentheses/description/
Код решения: pastebin.com/mYepPBWi
Так же закинул код в комментарий к посту
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2🔥2
#228 Summary Ranges
Потренироваться можно тут: leetcode.com/problems/summary-ranges/description/
Код решения: pastebin.com/bMFKNzbw
Так же закинул код в комментарий к посту⬇️
Потренироваться можно тут: leetcode.com/problems/summary-ranges/description/
Код решения: pastebin.com/bMFKNzbw
Так же закинул код в комментарий к посту
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤1👍1
#3950 Exactly One Consecutive Set Bits Pair
Потренироваться можно тут: leetcode.com/problems/exactly-one-consecutive-set-bits-pair/description/
Код решения: pastebin.com/vDFu4ude
Так же закинул код в комментарий к посту⬇️
Потренироваться можно тут: leetcode.com/problems/exactly-one-consecutive-set-bits-pair/description/
Код решения: pastebin.com/vDFu4ude
Так же закинул код в комментарий к посту
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤1👍1
#767 Reorganize String
Потренироваться можно тут: leetcode.com/problems/reorganize-string/
Код решения: pastebin.com/1LY3eiRm
Так же закинул код в комментарий к посту⬇️
Потренироваться можно тут: leetcode.com/problems/reorganize-string/
Код решения: pastebin.com/1LY3eiRm
Так же закинул код в комментарий к посту
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2🐳2✍1❤1
#55 Jump Game
Потренироваться можно тут: leetcode.com/problems/jump-game/description/
Код решения: pastebin.com/4d0kz7Cq
Так же закинул код в комментарий к посту⬇️
Потренироваться можно тут: leetcode.com/problems/jump-game/description/
Код решения: pastebin.com/4d0kz7Cq
Так же закинул код в комментарий к посту
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍2🐳2
#560 Subarray Sum Equals K
Потренироваться можно тут: leetcode.com/problems/subarray-sum-equals-k/description/
Код решения: pastebin.com/EsnCcVFE
Так же закинул код в комментарий к посту⬇️
Потренироваться можно тут: leetcode.com/problems/subarray-sum-equals-k/description/
Код решения: pastebin.com/EsnCcVFE
Так же закинул код в комментарий к посту
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍2🐳2
#204 Count Primes
Потренироваться можно тут: leetcode.com/problems/count-primes/description/
Код решения: pastebin.com/VWzz0qUH
Так же закинул код в комментарий к посту⬇️
Потренироваться можно тут: leetcode.com/problems/count-primes/description/
Код решения: pastebin.com/VWzz0qUH
Так же закинул код в комментарий к посту
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2🐳2
#XII Integer to Roman
Потренироваться можно тут: leetcode.com/problems/integer-to-roman/
Код решения: pastebin.com/dNNZpZWT
Так же закинул код в комментарий к посту⬇️
Потренироваться можно тут: leetcode.com/problems/integer-to-roman/
Код решения: pastebin.com/dNNZpZWT
Так же закинул код в комментарий к посту
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6🐳2🤝2
#1446 Consecutive Characters
Потренироваться можно тут: leetcode.com/problems/consecutive-characters/description/
Код решения: pastebin.com/8eXSGM2m
Так же закинул код в комментарий к посту⬇️
Потренироваться можно тут: leetcode.com/problems/consecutive-characters/description/
Код решения: pastebin.com/8eXSGM2m
Так же закинул код в комментарий к посту
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍2🐳2
#206 Reverse Linked List
Потренироваться можно тут: leetcode.com/problems/reverse-linked-list/
Код решения: pastebin.com/9vvFtW5v
Так же закинул код в комментарий к посту⬇️
Потренироваться можно тут: leetcode.com/problems/reverse-linked-list/
Код решения: pastebin.com/9vvFtW5v
Так же закинул код в комментарий к посту
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2🔥2
#763 Partition Labels
Потренироваться можно тут: leetcode.com/problems/partition-labels/description/
Код решения: pastebin.com/kTaE0q7d
Так же закинул код в комментарий к посту⬇️
Потренироваться можно тут: leetcode.com/problems/partition-labels/description/
Код решения: pastebin.com/kTaE0q7d
Так же закинул код в комментарий к посту
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🤝2👍1🐳1
Идеальная задача, чтобы понять, что такое скользящее окно
#3 Longest Substring Without Repeating Characters
Потренироваться можно тут: leetcode.com/problems/longest-substring-without-repeating-characters/description/
Код решения: pastebin.com/qRer9PPN
Так же закинул код в комментарий к посту⬇️
#3 Longest Substring Without Repeating Characters
Потренироваться можно тут: leetcode.com/problems/longest-substring-without-repeating-characters/description/
Код решения: pastebin.com/qRer9PPN
Так же закинул код в комментарий к посту
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥3👍1🐳1
Та самая задача, которая вызывает уйму непонимания и комментариев по типу: "Не сработает". Хотя решение в несколько строк, рекомендую ознакомиться 💯
#169 Majority Element
Потренироваться можно тут: leetcode.com/problems/majority-element/description/
Код решения: pastebin.com/SwZcnjWE
Так же закинул код в комментарий к посту⬇️
#169 Majority Element
Потренироваться можно тут: leetcode.com/problems/majority-element/description/
Код решения: pastebin.com/SwZcnjWE
Так же закинул код в комментарий к посту
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤2👍1🐳1
Интересная задача, где можно с помощью доп. памяти и хештаблицы можно улучшить время
с O(n log n) -> O(n)
128. Longest Consecutive Sequence
Потренироваться можно тут: leetcode.com/problems/longest-consecutive-sequence/description/
Код решения: pastebin.com/mbvi9V9h
Так же закинул код в комментарий к посту⬇️
с O(n log n) -> O(n)
128. Longest Consecutive Sequence
Потренироваться можно тут: leetcode.com/problems/longest-consecutive-sequence/description/
Код решения: pastebin.com/mbvi9V9h
Так же закинул код в комментарий к посту
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥3👍2🐳1
Идеальная задача, чтобы познакомиться с динамическим программированием
#70 Climbing Stairs
Потренироваться можно тут: leetcode.com/problems/climbing-stairs/description/
Код решения: pastebin.com/Ys2MX0N4
Так же закинул код в комментарий к посту⬇️
#70 Climbing Stairs
Потренироваться можно тут: leetcode.com/problems/climbing-stairs/description/
Код решения: pastebin.com/Ys2MX0N4
Так же закинул код в комментарий к посту
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥4🐳1🤝1
Классная задача, где показана идея сортировки за O(n)
#347 Top K Frequent Elements
Потренироваться можно тут: leetcode.com/problems/top-k-frequent-elements/
Код решения: pastebin.com/mdFiy6rm
Так же закинул код в комментарий к посту⬇️
#347 Top K Frequent Elements
Потренироваться можно тут: leetcode.com/problems/top-k-frequent-elements/
Код решения: pastebin.com/mdFiy6rm
Так же закинул код в комментарий к посту
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2🔥2
Недавно друг ходил на собес в Сбербанк. Там дают вариацию этой задачи: условие другое, но решение по сути то же самое.
Главное — знать, что такое монотонный стек
#739 Daily Temperatures
Потренироваться можно тут: leetcode.com/problems/daily-temperatures/description/
Код решения: pastebin.com/nRRXhata
Так же закинул код в комментарий к посту⬇️
Главное — знать, что такое монотонный стек
#739 Daily Temperatures
Потренироваться можно тут: leetcode.com/problems/daily-temperatures/description/
Код решения: pastebin.com/nRRXhata
Так же закинул код в комментарий к посту
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍3❤2🐳1