在一個成對數(shù)組中找出單獨的數(shù)

一個整型數(shù)組里除了兩個數(shù)字之外衬鱼,其他的數(shù)字都出現(xiàn)了兩次。請寫程序找出這兩個只出現(xiàn)一次的數(shù)字捻悯。

這道題呢在leetcode上見過匆赃,那道題是從1連續(xù)到n,中間缺了一個數(shù)今缚,讓你找出來缺的那個數(shù)是什么算柳。這兩道題很相似,那道題就是用了疑惑姓言,數(shù)組中的每個數(shù)和從1開始的i抑或瞬项,這樣剩下來的也就是單獨出現(xiàn)的i,也就是數(shù)組中缺少的那個元素何荚。

講真囱淋,我看到這道題的時候完全沒有想到用異或,而且得知是兩個不一樣的元素的時候也不知道怎么樣去用異或餐塘。所以所算法妥衣,對于一般人來講,就是見過戒傻,用的熟練的問題税手,不求你會發(fā)明創(chuàng)造,只要用的好就可以了需纳。

扯遠了芦倒,回到這道題上。這道題有兩個單獨出現(xiàn)的元素不翩。如果使用異或走一遍這個數(shù)組的話得到的結(jié)果是非0的兵扬,也就是這兩個元素異或的結(jié)果。那么根據(jù)這個結(jié)果口蝠,怎么找出這兩個元素呢器钟。

思考一下,兩個不一樣的元素的異或的結(jié)果肯定不是0亚皂。那么我們就找這個結(jié)果中有右往左第一個非0位俱箱,也就是1出現(xiàn)的第一次的位置国瓮。這兩個元素中肯定有一個在這個位置是0灭必,另一個在這個位置是1。而其他成對出現(xiàn)的元素也會分為兩個部分乃摹,一個部分在個位置是1禁漓,另一個部分在這個位置是0.所以,我們就把一個數(shù)組求兩個單獨元素的問題就分割成孵睬,兩個數(shù)組每個數(shù)組求其單獨元素的問題播歼。所以這個時候使用異或就很好解決了。
代碼如下:

class Solution {
public:
    void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) {
       if(data.size() <2)return;
        int hxor =0;
        int flag =1;
        for(int i=0;i<data.size();++i)
            hxor ^= data[i];
        while((hxor&flag)==0) flag <<= 1;
        *num1 = hxor;
        *num2 = hxor;
        for(int i=0;i<data.size();++i)
            {
            if(data[i] & flag)
                *num1 ^= data[i];
            else
                *num2 ^= data[i];
        }
    }
};
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市秘狞,隨后出現(xiàn)的幾起案子叭莫,更是在濱河造成了極大的恐慌,老刑警劉巖烁试,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件雇初,死亡現(xiàn)場離奇詭異,居然都是意外死亡减响,警方通過查閱死者的電腦和手機靖诗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來支示,“玉大人刊橘,你說我怎么就攤上這事∷毯瑁” “怎么了促绵?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長据途。 經(jīng)常有香客問我绞愚,道長,這世上最難降的妖魔是什么颖医? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任位衩,我火速辦了婚禮,結(jié)果婚禮上熔萧,老公的妹妹穿的比我還像新娘糖驴。我一直安慰自己,他們只是感情好佛致,可當(dāng)我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布秃殉。 她就那樣靜靜地躺著,像睡著了一般山孔。 火紅的嫁衣襯著肌膚如雪粒蜈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天罐脊,我揣著相機與錄音定嗓,去河邊找鬼。 笑死萍桌,一個胖子當(dāng)著我的面吹牛宵溅,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播上炎,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼恃逻,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起寇损,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤凸郑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后矛市,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體线椰,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年尘盼,在試婚紗的時候發(fā)現(xiàn)自己被綠了憨愉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡卿捎,死狀恐怖配紫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情午阵,我是刑警寧澤躺孝,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站底桂,受9級特大地震影響植袍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜籽懦,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一于个、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧暮顺,春花似錦厅篓、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至惫恼,卻和暖如春档押,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背祈纯。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工令宿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人盆繁。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓掀淘,卻偏偏與公主長得像旬蟋,于是被迫代替她去往敵國和親油昂。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法冕碟,內(nèi)部類的語法拦惋,繼承相關(guān)的語法,異常的語法安寺,線程的語...
    子非魚_t_閱讀 31,625評論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理厕妖,服務(wù)發(fā)現(xiàn),斷路器挑庶,智...
    卡卡羅2017閱讀 134,654評論 18 139
  • 國慶假期言秸,媽媽帶我去青島動物園玩!我高興的不亦樂乎迎捺,前一天晚上举畸,我折騰了好久才睡著。 我們走進動物園...
    祝福_e166閱讀 308評論 0 2
  • 夜風(fēng)習(xí)習(xí)凳枝,我站在陽臺晾剛洗好的衣裳抄沮,一抬頭發(fā)現(xiàn)一輪清淺的彎月,就那樣斜斜的掛在邊上岖瑰,仿佛離我很近叛买,伸出手去卻又那么...
    如小玉閱讀 611評論 0 0
  • 世人都曉神仙好,惟有功名忘不了蹋订!古今將相在何方率挣?荒冢一堆草沒了。 世人都曉神仙好露戒,只有金銀忘不了难礼!終朝只恨聚無多,...
    向內(nèi)的旅程閱讀 305評論 0 2