Leetcode 268.缺失數字 By Python
阿新 • • 發佈:2018-09-23
線性 進行 obj 現在 () 時間復雜度 iss elf sum
給定一個包含 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
代碼
class Solution(object): def missingNumber(self, nums): """ :type nums: List[int] :rtype: int """ nums.sort() for i in range(len(nums)): if i != nums[i]: return i if i == len(nums)-1: return len(nums)
Ps.或者可以比較未缺失情況下的值和給定的序列的值的差就可以找到缺失數字
return len(nums)*(len(nums)+1)//2 - sum(nums)
Leetcode 268.缺失數字 By Python