LeetCode题解之Find All Duplicates in an Array
Posted 山里的小勇子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode题解之Find All Duplicates in an Array相关的知识,希望对你有一定的参考价值。
1、题目描述
2、问题分析
将数组中的元素 A[i] 放到 A[ A[i] - 1] 的位置。然后遍历一边数组,如果不满足 A[i] == i+1,则将A[i]添加到 结果中。
3、代码
1 vector<int> findDuplicates(vector<int>& nums) { 2 vector<int> result ; 3 for( int i = 0; i < nums.size() ; ++i ){ 4 if( nums[i] != nums[ nums[i] - 1 ]){ 5 std::swap( nums[i] , nums[ nums[i] - 1]); 6 --i; 7 } 8 } 9 for( int i = 0; i < nums.size(); i++ ){ 10 if( nums[i] != i+1 ){ 11 result.push_back( nums[i] ); 12 } 13 14 } 15 return result ; 16 17 }
以上是关于LeetCode题解之Find All Duplicates in an Array的主要内容,如果未能解决你的问题,请参考以下文章
leetcode题解之Find the Duplicate Number
leetcode之Find All Numbers Disappeared in an Array
leetcode之Find All Numbers Disappeared in an Array
#Leetcode# 448. Find All Numbers Disappeared in an Array