268. 缺失數字

給定一個包含 0, 1, 2, ..., n 中 n 個數的序列,找出 0 .. n 中沒有出現在序列中的那個數。

示例 1:

輸入: [3,0,1]
輸出: 2

示例 2:

輸入: [9,6,4,2,3,5,7,0,1]
輸出: 8

說明:
你的算法應具有線性時間複雜度。你能否僅使用額外常數空間來實現?


Review:

O(n)複雜度,常數級空間

我們可以遍歷數組,讓數組中的數和i抵消,沒有抵消掉的爲缺失的數


Code:

class Solution {
    public int missingNumber(final int[] nums) {
        int res = 0, len = nums.length;
        for (int i = 0; i < len; i++) {
            res = res + i - nums[i];
        }
        return res + len;
    }
}

我是用 + - 來進行抵消操作的,看了題解,覺得^異或的方式更好

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章