题目
代码
执行用时:56 ms, 在所有 Python3 提交中击败了21.17% 的用户
内存消耗:24.3 MB, 在所有 Python3 提交中击败了22.44% 的用户
通过测试用例:25 / 25
class Solution:
def findRepeatNumber(self, nums: List[int]) -> int:
cnt=dict()
ans=-1
for num in nums:
if num in cnt:
ans=num
return ans
else:
cnt[num]=1
return ans
【方法2】
执行用时:52 ms, 在所有 Python3 提交中击败了31.30% 的用户
内存消耗:23.7 MB, 在所有 Python3 提交中击败了43.53% 的用户
通过测试用例:25 / 25
class Solution:
def findRepeatNumber(self, nums: List[int]) -> int:
nums.sort()
for i in range(1,len(nums)):
if nums[i]==nums[i-1]:
return nums[i]
return 0
【方法3】
时间复杂度:O(n)
空间复杂度:O(1)
执行用时:60 ms, 在所有 Python3 提交中击败了16.15% 的用户
内存消耗:23.7 MB, 在所有 Python3 提交中击败了42.18% 的用户
通过测试用例:25 / 25
class Solution:
def findRepeatNumber(self, nums: [int]) -> int:
i = 0
while i < len(nums):
if nums[i] == i:
i += 1
continue
if nums[nums[i]] == nums[i]: return nums[i]
nums[nums[i]], nums[i] = nums[i], nums[nums[i]]
return -1