1. 程式人生 > >【簡單算法】49.缺失數字

【簡單算法】49.缺失數字

輸入 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.缺失數字