Given an array of integers, 1 ≤ a[i] ≤n(n= size of array), some elements appear twice and others appear once.
Find all the elements that appear twice in this array.
Could you do it without extra space and in O(n) runtime?
Example: Input:[4,3,2,7,8,2,3,1] Output:[2,3]
这个题目的解题关键在于1 ≤a[i]≤n(n= size ofarray) 如果按坐标点来追踪的话, 如果一个数字出现两次 那么这个坐标点必定访问两次, nums[nums[i]-1] 设置为负值。 如果发现为负 那么这个值就说明已经出现过一次。
网友评论