leetcode No 268 缺失數字

2021-09-24 13:53:47 字數 588 閱讀 5508

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

示例 1:

輸入: [3,0,1]

輸出: 2

示例 2:

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

輸出: 8

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

class

solution

(object):

defmissingnumber

(self, nums)

:"""

:type nums: list[int]

:rtype: int

"""n=

len(nums)

count=n*

(n+1)/

2for i in

range

(n):

count-=nums[i]

return count

求出前n項和,然後減去陣列中所有的數,就知道哪個數缺失了。

時間複雜度:o(n)

空間複雜度:o(1)

268 缺失數字

排序,不多解釋,估計都能想到。func missingnumber nums int int if nums 0 0for i 1 i len nums i return 1 借用雜湊表 不多說,估計也都能想到 func missingnumber nums int int for v range ...

268 缺失數字

難度 簡單 題目描述 解題思路 最簡單的可以用桶計數或者排序,然後找到沒出現過的數字。但是題目要求線性時間複雜度,所以不能排序,又只使用額外常數空間,也不能用桶計數。因為這個題裡資料範圍是確定的,而且只缺失乙個正整數,所以可以先計算0 n的和,然後依次減去陣列裡的元素,剩下來的就是沒出現過的。考慮到...

LeetCode 268 缺失數字

給定乙個包含0,1,2,n中 n 個數的序列,找出 0 n 中沒有出現在序列中的那個數。示例 1 輸入 3,0,1 輸出 2示例 2 輸入 9,6,4,2,3,5,7,0,1 輸出 8說明 你的演算法應具有線性時間複雜度。你能否僅使用額外常數空間來實現?思路 首先通過set將nums排序,然後通過乙...