每日一題 丟失的數字

2021-10-14 15:43:53 字數 1376 閱讀 8558

給定乙個包含 [0, n] 中 n 個數的陣列 nums ,找出 [0, n] 這個範圍內沒有出現在陣列中的那個數。

高階:

你能否實現線性時間複雜度、僅使用額外常數空間的演算法解決此問題?

示例 1:

輸入:nums = [3,0,1]

輸出:2

解釋:n = 3,因為有 3 個數字,所以所有的數字都在範圍 [0,3] 內。2是丟失的數字,因為它沒有出現在 nums 中。

示例 2:

輸入:nums = [0,1]

輸出:2

解釋:n = 2,因為有 2 個數字,所以所有的數字都在範圍 [0,2] 內。2是丟失的數字,因為它沒有出現在 nums 中。

示例 3:

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

輸出:8

解釋:n = 9,因為有 9 個數字,所以所有的數字都在範圍[0,9] 內。8 是丟失的數字,因為它沒有出現在 nums 中。

示例 4:

輸入:nums = [0]

輸出:1

解釋:n = 1,因為有 1 個數字,所以所有的數字都在範圍 [0,1] 內。1是丟失的數字,因為它沒有出現在 nums 中。

將陣列排序,如果第乙個數不是0,直接返回0。如果最後乙個數不等於陣列長度,直接返回陣列長度。如果前面都沒有返回,說明缺少的是中間某乙個數字,那麼遍歷陣列,判斷當前元素和後一位元素是否相差1,如果不是,缺少的就是當前元素+1。

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...