題目:數組nums包含從0到n的所有整數,但其中缺了一個。請編寫代碼找出那個缺失的整數。在O(n)時間內完成
示例 1:輸入:[3,0,1] 輸出:2
示例 2:輸入:[9,6,4,2,3,5,7,0,1] 輸出:8
public int missingNumber(int[] nums) { //運用異或 : 0^0=0; 0^1=1; 1^1=0; a^b^b=a; int data = 0; for (int i = 0; i < nums.length; ++i) { //先用0異或0~nums.length的下標 data ^= i; //再異或元素,一個數字出現兩次,異或后為0,而異或最終的結果值為出現一次的數,即為缺失的元素 data ^= nums[i]; } data ^= nums.length; return data; }