码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode题解之Find All Duplicates in an Array

时间:2018-07-14 20:37:31      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:res   vector   pre   技术   位置   i++   std   tco   img   

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

标签:res   vector   pre   技术   位置   i++   std   tco   img   

原文地址:https://www.cnblogs.com/wangxiaoyong/p/9310856.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!