1. 程式人生 > >LeetCode 287. Find the Duplicate Number

LeetCode 287. Find the Duplicate Number

find 由於 ray all turn num pre n-1 DDU

解法一:

類似 LeetCode 442. Find All Duplicates in an Array,由於元素是1~n,因此每個元素的值-1(映射到0~n-1)就可以直接當做下標。

class Solution {
public:
    int findDuplicate(vector<int>& nums) {
        for (int i=0;i<nums.size();++i){
            int index=abs(nums[i])-1;
            if (nums[index]>0) nums[index]*=-1
; else return index+1; } } };

解法二:

LeetCode 287. Find the Duplicate Number