給出n個數字。其中僅有乙個數字出現過一次,其他數字均出現過兩次,找出這個出現且只出現過一次的數字。要求時間和空間複雜度最小。
一開始是很普通的想法,從第乙個數開始,從前往後遍歷。但兩個數相同時,將兩數賦乙個不可能出現的值。再重新遍歷陣列,找出沒有被賦予不可能出現值的值。
private
static string solution(string line) }}
for(int i=0;iif(!array[i].equals("a"))
}return result;
改進方法,用位運算,利用了(^)異或運算的特點(乙個資料對另乙個資料異或兩次,該資料本身不發生改變。)。只需要一遍遍歷,就可完成。
private
static
intsolution(string line)
return result;
}
小公尺OJ 2 找出單獨出現的數字
解法一 map1.45 ms include include include include include include include include include include include include include include using namespace std int...
小公尺OJ 2(找出單獨出現的數字)
找出單獨出現的數字 序號 2 難度 有挑戰 時間限制 1000ms 記憶體限制 10m描述 給出n個數字。其中僅有乙個數字出現過一次,其他數字均出現過兩次,找出這個出現且只出現過一次的數字。要求時間和空間複雜度最小。輸入輸入多個數字,每個數字以空格分開。數字數量 n 20,輸入數字的最大值小於 25...
小公尺oj記錄 (二)找出單獨出現的數字
描述 給出n個數字。其中僅有乙個數字出現過一次,其他數字均出現過兩次,找出這個出現且只出現過一次的數字。要求時間和空間複雜度最小。輸入 輸入多個數字,每個數字以空格分開。數字數量 n 20,輸入數字的最大值小於 256.輸出 輸出內容為只出現過唯一一次的數字 輸入樣例 10 10 11 12 12 ...