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

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

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

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param array int整型vector 
     * @return int整型vector
     */
    vector<int> FindNumsAppearOnce(vector<int>& array) {
        // write code here
        vector<int> re;
        quickarr(array,0,array.size()-1);
        for(int i = 0;i<array.size();i++){
            if(array[i] == array[i+1]  && i != (array.size()-1)){
               i++;
            }else{
                 re.push_back(array[i]);
            }

        }
        return re;
    }

    void quickarr(vector<int>& array,int begin,int end){
        if(begin > end){
            return;
        }
        int temp = array[begin];
        int i = begin;
        int j = end;
        while(i != j){
            while(array[j]>=temp && j>i){
                j--;
            }
            while(array[i]<=temp && j>i){
                i++;
            }
            int swap = array[j];
            array[j] = array[i];
            array[i] = swap;
        }
        array[begin] = array[i];
        array[i] = temp;
        quickarr(array,begin,i-1);
        quickarr(array,i+1,end);
    }
};

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务