题解 | #数组中只出现一次的两个数字#

数组中只出现一次的两个数字

https://www.nowcoder.com/practice/389fc1c3d3be4479a154f63f495abff8

#include <vector>
class Solution {
public:
 
    vector<int> FindNumsAppearOnce(vector<int>& nums) {
        int n = nums.size();
        vector<int> ans;
        if(n == 2) return nums;
        sort(nums.begin(), nums.end());
        for(int i = 0; i < n; i ++){//相当于遍历数组中元素的时候进行分类讨论,首个元素要是不和后面一个元素相同就入栈,中间的元素要是前后都不相同就入栈,末尾的元素要是不和前面一个元素相等就入栈
            if(i == 0 && nums[i] != nums[i+1]) ans.push_back(nums[i]);
            if(i != 0 && nums[i] != nums[i - 1] && i != n-1 && nums[i] != nums[i+1]) ans.push_back(nums[i]);
            if(i == n-1 && nums[i] != nums[i-1]) ans.push_back(nums[i]); 
        }
        return ans;
    }
};

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务