GoCalf Calf 的自留地 · 昙花一现

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

python
class Solution:
    def containsDuplicate(self, nums: List[int]) -> bool:
solution_test.py下载完整源码
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

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。