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

leetcode No448. Find All Numbers Disappeared in an Array

LeetCode - Find All Anagrams in a String