給定乙個包含 [0, n] 中 n 個數的陣列 nums ,找出 [0, n] 這個範圍內沒有出現在陣列中的那個數。
高階:
你能否實現線性時間複雜度、僅使用額外常數空間的演算法解決此問題?
示例 1:
輸入:nums = [3,0,1]示例 2:輸出:2
解釋:n = 3,因為有 3 個數字,所以所有的數字都在範圍 [0,3] 內。2是丟失的數字,因為它沒有出現在 nums 中。
輸入:nums = [0,1]示例 3:輸出:2
解釋:n = 2,因為有 2 個數字,所以所有的數字都在範圍 [0,2] 內。2是丟失的數字,因為它沒有出現在 nums 中。
輸入:nums = [9,6,4,2,3,5,7,0,1]示例 4:輸出:8
解釋:n = 9,因為有 9 個數字,所以所有的數字都在範圍[0,9] 內。8 是丟失的數字,因為它沒有出現在 nums 中。
輸入:nums = [0]將陣列排序,如果第乙個數不是0,直接返回0。如果最後乙個數不等於陣列長度,直接返回陣列長度。如果前面都沒有返回,說明缺少的是中間某乙個數字,那麼遍歷陣列,判斷當前元素和後一位元素是否相差1,如果不是,缺少的就是當前元素+1。輸出:1
解釋:n = 1,因為有 1 個數字,所以所有的數字都在範圍 [0,1] 內。1是丟失的數字,因為它沒有出現在 nums 中。
class
solution
:def
missingnumber
(self, nums)
: nums.sort(
)if nums[0]
!=0:return
0 len_nums =
len(nums)
if nums[-1
]!= len_nums:
return len_nums
for i in
range
(len_nums -1)
:if nums[i]
!= nums[i +1]
-1:return nums[i]+1
if __name__ ==
'__main__'
: li =[0
,1] res = solution(
).missingnumber(li)
print
(res)
每日一題 統計數字
難度星級 2星 主要考察 排序 字典 這是一道簡單 相對於部分語言來說 的排序的題目,先來看題 時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 某次科研調查時得到了n個自然數,每個數均不超過1500000000 ...
每日一題 1
題目詳情 peter喜歡玩數字遊戲,但數獨這樣的遊戲對他來說太簡單了,於是他準備玩乙個難的遊戲。遊戲規則是在乙個n n的 裡填數,規則 對於每個輸入的n,從左上角開始,總是以對角線為起點,先橫著填,再豎著填。這裡給了一些樣例,請在樣例中找到規律並把這個n n的 列印出來吧。輸入描述 多組測試資料 資...
每日一題2018 3 21
leetcode 2 模擬十進位制運算考察單鏈表基本操作。題無難點,個人基礎需要提高。definition for singly linked list.struct listnode class solution while p while q if shi val s next null ret...