AcWing 13. 找出数组中重复的数字
原题链接
简单
作者:
赵强
,
2019-03-08 17:31:46
,
所有人可见
,
阅读 3153
//分享个基于计数排序的算法
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;
}
};
tql
额外的空间为O(1)就没了呀