217. Contains Duplicate
Problem
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.
https://leetcode.com/problems/contains-duplicate/
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⁵-10⁹ <= nums[i] <= 10⁹
Test Cases
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:solution_test.py下载完整源码
import pytest
from solution import Solution
@pytest.mark.parametrize('nums, expected', [
([1,2,3,1], True),
([1,2,3,4], False),
([1,1,1,3,3,4,3,2,4,2], True),
])
class Test:
def test_solution(self, nums, expected):
sol = Solution()
assert sol.containsDuplicate(nums) == expected
Thoughts
用集合检查数字是否已经见过。
Code
solution.py下载完整源码
class Solution:
def containsDuplicate(self, nums: list[int]) -> bool:
known = set()
for v in nums:
if v in known:
return True
known.add(v)
return False
评论需要 JavaScript。