Решение задач с LeetCode
С помощью LeetCode можно подготовиться к собеседованию, например в Google!Я готов поддержать вас в освоении решения задач. Для достижения успеха важно самостоятельно формулировать цели. Можно попросить AI создавать задания разной сложности, решать их и отправлять ответы на проверку. Я могу предоставить варианты решений, но итоговый результат будет зависеть от ваших усилий. Определите свои цели и уверенно идите к их реализации. У вас всё получится!!!!
Task №217 (Easy)
Итак. Вот что от нас просят:Given an integer array nums, return true if any value appears at least twice in the array, and return false if every element is distinct.
Example 1:
Input: nums = [1,2,3,1]
Output: true
Explanation:
The element 1 occurs at the indices 0 and 3.
Example 2:
Input: nums = [1,2,3,4]
Output: false
Explanation:
All elements are distinct.
Example 3:
Input: nums = [1,1,1,3,3,4,3,2,4,2]
Output: true
Constraints:
- 1 <= nums.length <= 10**5
- -10**9 <= nums <= 10**9
Если хоть одно число повторяется то выводим True, если нет, то False
Вот как бы я это решил:
class Solution(object): # Объявляем класс Solution, наследуемый от object (стандарт для Python)
def containsDuplicate(self, nums): # Определяем метод containsDuplicate с параметрами: self (ссылка на экземпляр класса) и nums (входной массив чисел)
""" # Начало докстринга (документационной строки)
:type nums: List[int] # Указываем тип параметра nums: список целых чисел
:rtype: bool # Указываем тип возвращаемого значения: булево (True/False)
""" # Конец докстринга
known = set() # Создаём пустое множество known — будем хранить в нём уже встреченные числа
for num in nums: # Запускаем цикл: перебираем каждое число num из входного массива nums
if num in known: # Проверяем: есть ли текущее число num уже в множестве known?
return True # Если да (число уже встречалось) — сразу возвращаем True (дубликат найден!)
known.add(num) # Если числа ещё не было в множестве — добавляем его в known
return False # Если цикл прошёл весь массив и дубликатов не нашёл — возвращаем False
Логика работы:
- Создаётся пустое множество known для хранения уже встреченных чисел.
- Цикл for перебирает все элементы массива nums.
- Для каждого числа num проверяется, есть ли оно в множестве known:
- Если да — сразу возвращается True (дубликат найден).
- Если нет — число добавляется в множество known.
- Если цикл завершился без находок дубликатов, возвращается False.
Пошаговый разбор на примерах
Пример 1: nums = [1, 2, 3, 1]- num = 1: нет в known → добавляем 1 в known.
- num = 2: нет в known → добавляем 2 в known.
- num = 3: нет в known → добавляем 3 в known.
- num = 1: уже есть в known → возвращаем True.
Пример 2: nums = [1, 2, 3, 4]
- num = 1: нет в known → добавляем.
- num = 2: нет в known → добавляем.
- num = 3: нет в known → добавляем.
- num = 4: нет в known → добавляем.
- Цикл завершён → возвращаем False.
Пример 3: nums = [1, 1, 1, 3, 3, 4, 3, 2, 4, 2]
- num = 1: нет в known → добавляем.
- num = 1: уже есть в known → возвращаем True.
👍21
🤔6
😢4
LIMB