日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

LintCode-落单的数 III

發(fā)布時(shí)間:2024/1/17 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LintCode-落单的数 III 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

給出2*n + 2個(gè)的數(shù)字。除當(dāng)中兩個(gè)數(shù)字之外其它每一個(gè)數(shù)字均出現(xiàn)兩次,找到這兩個(gè)數(shù)字。

您在真實(shí)的面試中是否遇到過(guò)這個(gè)題?? Yes 例子

給出?[1,2,2,3,4,4,5,3]。返回 1和5

挑戰(zhàn)

O(n)時(shí)間復(fù)雜度,O(1)的額外空間復(fù)雜度

標(biāo)簽?Expand??

相關(guān)題目?Expand?


分析:這樣的抖靈巧的題要是面試官面我,我肯定會(huì)批判一番的!把全部數(shù)亦或下,得到的數(shù)能夠求出兩不同數(shù)的亦或值,這樣能夠找到一個(gè)位,在該位上能夠把全部數(shù)分成兩部分。沒(méi)部分能夠套用之前的“全部數(shù)都出現(xiàn)兩次,除了當(dāng)中一個(gè)數(shù)”的代碼。

代碼:

class Solution { public:/*** @param A : An integer array* @return : Two integers*/vector<int> singleNumberIII(vector<int> &A) {// write your code hereint k = findFirstDiffBit(A);int ret1 = findOne(A, k, true);int ret2 = findOne(A, k, false);vector<int> ret;ret.push_back(ret1);ret.push_back(ret2);return ret;}int findFirstDiffBit(vector<int>& A){int x = 0;for (auto i : A)x ^= i;for (int i = 0;i<32;i++){if ((1 << i)&x)return i;}}int findOne(vector<int>&A, int k, bool first){int ret = 0;for (auto x : A){if (first){if ((1 << k)&x)ret ^= x;}else{if (((x>>k)&1) == 0)ret ^= x;}}return ret;} };

總結(jié)

以上是生活随笔為你收集整理的LintCode-落单的数 III的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。