题解 | #数组中只出现一次的两个数字#
数组中只出现一次的两个数字
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; } };