題目: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...