题目描述
解答
暴力解
扫描三遍,第一遍初始长度为n的数组,第二遍记录每个数字出现的次数,第三遍找到第一个出现次数大于1的数字。
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param numbers int整型vector
* @return int整型
*/
int duplicate(vector<int>& numbers) {
// write code here
int size = numbers.size();
vector<int> count;
for(int i=0;i<size;i++){
count.push_back(0);
}
for(int i=0;i<size;i++){
count[numbers[i]]++;
}
for(int i=0;i<size;i++){
if(count[numbers[i]]>1)
return numbers[i];
}
return -1;
}
};
运行时间:8ms
超过8.21%用C++提交的代码
占用内存:388KB
超过48.67%用C++提交的代码
下标对应法
https://cuijiahua.com/blog/2018/01/basis_50.html