https://leetcode.com/problems/find-all-duplicates-in-an-array/
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]
class Solution {
public:
vector<int> findDuplicates(vector<int>& nums) {
vector<int> result;
for(int i = 0; i < nums.size(); ++i){
int cur = abs(nums[i]);
if(nums[cur-1] < 0) result.push_back(cur);
else nums[cur-1] = -nums[cur-1];
}
return result;
}
};
LeetCode:查找数组中重复元素
博客给出LeetCode题目链接,题目要求在给定整数数组中,找出所有出现两次的元素,数组元素范围为1 ≤ a[i] ≤ n(n为数组大小),并询问能否在不使用额外空间且时间复杂度为O(n)的情况下完成。
338

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



