Программа курса:
Разбор задачи: Содержит дубликат
Предложенный нами код решения:
def contains_duplicate(nums):
"""
Проверяет, содержит ли массив дублирующиеся элементы.
:param nums: List[int], целочисленный массив
:return: bool, True если есть дубли, иначе False
"""
return len(nums) != len(set(nums))Реализация
Ключевая строка:
return len(nums) != len(set(nums))- Использование множества (
set):- Множество в Python автоматически удаляет дубликаты, так как в нем хранятся только уникальные элементы.
- Преобразование списка
numsв множество с помощьюset(nums)создает новую структуру данных, содержащую только уникальные элементы.
- Сравнение длин:
- Если в списке
numsбыли дублирующиеся элементы, длина списка (len(nums)) будет больше длины множества (len(set(nums))). - Если длины совпадают, значит все элементы уникальны.
- Если в списке
- Возвращение результата:
- Выражение
len(nums) != len(set(nums))возвращает:True, если длины отличаются (есть дубликаты).False, если длины одинаковы (все элементы уникальны).
- Выражение
Пример работы
- Ввод:
nums = [1, 2, 3, 1]- Преобразование в множество:
set(nums) = {1, 2, 3} - Длины:
len(nums) = 4,len(set(nums)) = 3 - Результат:
4 != 3→True
- Преобразование в множество:
- Ввод:
nums = [1, 2, 3, 4]- Преобразование в множество:
set(nums) = {1, 2, 3, 4} - Длины:
len(nums) = 4,len(set(nums)) = 4 - Результат:
4 == 4→False
- Преобразование в множество:
- Ввод:
nums = []- Преобразование в множество:
set(nums) = {} - Длины:
len(nums) = 0,len(set(nums)) = 0 - Результат:
0 == 0→False
- Преобразование в множество:
Вы должны Войти или Зарегистрироваться чтобы оставлять комментарии