题解 | #数组中只出现一次的两个数字#
数组中只出现一次的两个数字
https://www.nowcoder.com/practice/389fc1c3d3be4479a154f63f495abff8
先排序,把相同的数字看成一对。
从开始,一对一对判断,如果两个元素相等则跳到下一对,指针i每次加2。
如果一对的两个元素不相等,则把第一个元素存起来,下一循环走一步。
因为每个循环加2,为了达到走一步的效果,故i--。
不过按我的逻辑如果最后元素出现一次应该会溢出..我再查查
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param array int整型vector
* @return int整型vector
*/
vector<int> FindNumsAppearOnce(vector<int>& array) {
// write code here
vector<int> res;
if(array.empty())
return res;
sort(array.begin(),array.end());
for(int i =0;i<array.size();i = i+2)
{
if(array[i]!=array[i+1])
{
res.push_back(array[i]);
i--;
continue;
}
}
return res;
}
};
查看11道真题和解析