数组中重复的数字

题目要求

找出数组中重复的数字。

在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。

实现

  1. 时间复杂度为O(1),空间复杂度为O(n)
class Solution:
    def findRepeatNumber(self, nums: List[int]) -> int:
        d = [0] * len(nums)
        for i in nums:
            if d[i] == 0:
                d[i] = 1
            else:
                return i
  1. 空间复杂度为O(1),时间复杂度为O(n)
class Solution:
    def findRepeatNumber(self, nums: List[int]) -> int:
        nums.sort()
        p = nums[0]
        n = len(nums)
        for index in range(1, n):
            if p== nums[index]:
                return p
            p= nums[index]
posted @ 2021-06-04 22:06  陈葛杰  阅读(29)  评论(0)    收藏  举报