题解 | #数组中重复的数字#
数组中重复的数字
https://www.nowcoder.com/practice/6fe361ede7e54db1b84adc81d09d8524
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param numbers int整型vector
* @return int整型
*/
int duplicate(vector<int>& numbers) {
// write code here
int i,temp;
for (i=0;i<numbers.size();i++)
{ //>=的原因是数组是从0开始,所以等于也是错的
if (numbers[i]<0 || numbers[i]>=numbers.size())
return -1;
if (numbers.size()<=1)
return -1;
}
for (i=0;i<numbers.size();i++)
{
while(numbers[i]!=i)
{
if(numbers[i]==numbers[numbers[i]])
return numbers[i];
else
{
temp=numbers[i];
numbers[i]=numbers[temp];
numbers[temp]=temp;
}
}
};
return -1;
}
};
这是本人(通信专业计算机小白)第一次自己手打出来的代码(提前看过算法思想),经历很多的错误。但是蛮有纪念意义的。
#剑指OFFER##C++##数组中重复的数字#
