一开始的想法是用异或来做 但看到了Given an array of integers, 1 ≤ a[i] ≤ n (n = size of array)这个条件
意味着我们可以在原来的数组上操作设置标志位 出现过的数字下标设为-1(因为所给的整数不会超出数组长度即最坏的情况都能一一对应)
class Solution:
def findDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: List[int]
"""
res=[]
for n in nums:
index=abs(n)-1
if nums[index]<0:
res.append(index+1)
nums[index]=-nums[index]
return res

本文介绍了一种在给定整数数组中查找重复数字的方法,利用数组元素作为标志位,通过将出现过的数字对应的下标位置设为负值来标记,再次遇到相同下标为负值则表明该数字重复。
387

被折叠的 条评论
为什么被折叠?



