查詢 異或 尋找兩個集合的遺漏值和重複值

2021-06-28 05:07:00 字數 591 閱讀 5952

題目:epi

設題目中的遺漏值為m,重複值為t。

方法一:

先計算出t-m,然後計算t^2-m^2,進一步可得t+m。已知t-m和t+m,可求出答案。缺點是相加時有可能溢位。

方法二:

用異或來做。

//該函式的功能是判斷整數num轉化為二進位制時,第index位是不是1

bool is_some_bit_one(int num,int index)

} for(auto i=z.begin();i!=z.end();i++)

for(auto i=a.begin();i!=a.end();i++)

//此時tmp是重複值t,或者是遺漏值m

//判斷tmp是否是遺漏值

int tmp_is_missing=true;

for(int i=0;ires;

if(tmp_is_missing)

else

return res;

}

尋找和為定值的兩個或多個數

一 尋找和為定值的兩個數 題目 輸入乙個陣列和乙個數字,在陣列中查詢兩個數,使得它們的和正好是輸入的那個數字。要求時間複雜度是o n 如果有多對數字的和等於輸入的數字,輸出任意一對即可。例如輸入陣列1 2 4 7 11 15和數字15。由於4 11 15,因此輸出4和11。詳情參考 用乙個hash表...

異或運算 尋找陣列中出現奇數次的1個或兩個值

給定乙個整數陣列local,已知陣列中只有乙個數出現了奇數次,其他數都出現了偶數次,找出這個出現奇數次的數。此題用到異或的性質 n n 0 n 0 n 並且異或操作滿 換律和結合律。令e 0,讓e逐個對陣列中的值做異或,最後結果值即為該出現奇數次的值.如local 令e a b c a b n c ...

005尋找滿足和為定值的兩個或多個數

題目 輸入乙個陣列和乙個數字,在陣列中查詢兩個數,使得它們的和正好是輸入的那個數字。要求時間複雜度是o n 如果有多對數字的和等於輸入的數字,輸出任意一對即可。例如輸入陣列1 2 4 7 11 15和數字15。由於4 11 15,因此輸出4和11。分析 思路一 排序,兩頭向中間遍歷,兩頭和大於sum...