РАЗРАБОТКА

Разработчик Di делится решениями задач на LeetCode недели 3.16-3.22

Посмотрите, как разработчик Di решает задачи LeetCode: Happy Number и другие. Практические советы по оптимизации кода.

✍️ Редакция iTech News | 24.03.2026 | ⏱ 2 мин | Источник: DEV Community
Решения задач LeetCode: неделя 3.16-3.22 от Di

Разработчик Di представил несколько интересных решений задач на LeetCode за неделю 3.16-3.22. Эти примеры могут быть полезны не только для начинающих программистов, но и для более опытных специалистов, которые хотят оптимизировать свои алгоритмы.

Разбор задач на LeetCode

Первая задача, о которой идет речь, — Happy Number. Число считается счастливым, если сумма квадратов его цифр в итоге становится равной 1. Ключевой момент решения — использование множества для отслеживания трудно предсказуемых циклов чисел. В результате, когда число по— в множестве дважды, оно считается «несчастливым». Мы можем использовать следующий код:

def isHappy(self, n: int) -> bool:
 myset = set()
 while n != 1 and n not in myset:
 myset.add(n)
 res = 0
 while n != 0:
 thedigit = n % 10
 res += pow(thedigit, 2)
 n = n // 10
 n = res
 return n == 1

Следующая задача — Longest Consecutive Sequence, где требуется найти длину самой длинной последовательности подряд идущих чисел в неотсортированном массиве. Чтобы решить её за O(n), мы проверяем, — ли каждое число начальным в последовательности:

def longestConsecutive(self, nums: List[int]) -> int:
 num_set = set(nums)
 longest_streak = 0
 for num in num_set:
 if (num - 1) not in num_set:
 current_num = num
 current_streak = 1
 while (current_num + 1) in num_set:
 current_num += 1
 current_streak += 1
 longest_streak = max(longest_streak, current_streak)
 return longest_streak

Преимущества используемых подходов

Оба подхода наглядно демонстрируют, как использование хеш-таблиц (как в случае с множеством) может значительно ускорить процесс поиска и проверки элементов, минимизируя время вычислений. Это особенно важно при работе с большими массивами данных, где эффективность имеет решающее значение.

Практические выводы для разработчиков

Использование оптимизированных алгоритмов и структур этих может ускорить разработку ваших приложений и улучшить производительность. Для российских разработчиков это служит напоминанием о необходимости постоянного изучения и адаптации новых техник для достижения результатов. При решении задач на платформах вроде LeetCode важно не только найти ответ, но и научиться делать это эффективно.

В следующей неделе Di планирует рассмотреть новые задачи, погружаясь в более сложные алгоритмы и структуры данных, что будет полезно для всех, кто стремится развиваться в области программирования.

Поделиться: Telegram X LinkedIn