我是靠谱客的博主 单薄芝麻,最近开发中收集的这篇文章主要介绍数组中只出现一次的两个数字(位运算,哈希),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

描述

一个整型数组里除了两个数字只出现一次,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。

示例1

输入:

[1,4,1,6]

复制返回值:

[4,6]

复制说明:

返回的结果中较小的数排在前面  

 思路:这题我没有用哈希和位运算,用了一个最简单的思想,首先对数组进行排序,然后判断每一个元素和他后一个元素的关系,只要不相等就把当前的值加到一个新的数组后面,这里用C++里的push.back()非常方便,新建一个vector 后,只需要把出现一次的分别加到这个vector后就行,最后返回vector.

class Solution {
public:
    vector<int> FindNumsAppearOnce(vector<int>& array) {
        sort(array.begin(),array.end());
        vector<int> result;
        for(int i=0;i<array.size();i++)
        {
            if(array[i]==array[i+1])
                    i++;
            else
                result.push_back(array[i]);
        }
        return result;
    }
};

 

最后

以上就是单薄芝麻为你收集整理的数组中只出现一次的两个数字(位运算,哈希)的全部内容,希望文章能够帮你解决数组中只出现一次的两个数字(位运算,哈希)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部