头像

赵强


访客:1382

离线:7个月前



赵强
2019-03-08 09:31
//分享个基于计数排序的算法
class Solution {
public:
    int duplicateInArray(vector<int>& nums) {
        int n=nums.size();
        vector<int> temp(n,0);
        for(int i=0;i<n;i++) 
        {
            if(nums[i]<0)
            {
                return -1;
            }
            temp[nums[i]]++;
        }
        for(int i=0;i<n;i++)
        {
            if(temp[i]>1)
            {
                return i;
            }
        }
        return -1;
    }
};


//简化版
class Solution {
public:
    int duplicateInArray(vector<int>& nums) {
        int n=nums.size();
        vector<int> temp(n,0);
        for(auto i:nums)
        {
            if(i<0 ||i>=n)
            {
                return -1;
            }
        }
        for(int i=0;i<n;i++) 
        {
            if(temp[nums[i]]++){
                return nums[i];
            }
        }
        return -1;
    }
};