【簡單算法】49.缺失數字
阿新 • • 發佈:2018-05-07
輸入 class 出現 public tor code 序列 urn div
題目:
給出一個包含 0, 1, 2, ..., n 中 n 個數的序列,找出 0 .. n 中沒有出現在序列中的那個數。 案例 1 輸入: [3,0,1] 輸出: 2 案例 2 輸入: [9,6,4,2,3,5,7,0,1] 輸出: 8 註意事項: 您的算法應該以線性復雜度運行。你能否僅使用恒定的額外空間復雜度來實現它?
解題思路:
異或從0到n進行異或得到結果val,再將val與數組中每個元素進行異或,即可得到結果。次題的解法類似一個1到n的數列中有一個數出現了兩次,找出該數的解法一樣。
代碼如下:
class Solution { public: int missingNumber(vector<int>& nums) { int n = nums.size()+1; int res = 0; for(int i = 0;i < n; ++i){ res ^=i; } for(int i = 0;i < nums.size();++i){ res ^=nums[i]; } return res; } };
解法二:
【簡單算法】49.缺失數字