First Missing Positive【hard】

weixin_33850890發表於2017-08-09
6560153-10cb01b0f6cda660.jpg

參考視訊:https://www.youtube.com/watch?v=8DqewGsVNkI

解決法:【其實還不錯】

設定一個boolean array, 每一個數對應一個position。 遍歷一遍,如果碰到數的話就把boolean 裡的position變成True。

然後再iterate boolean array一次,把第一個False的position+1返回。

負數在這裡我們會無視,因為沒有position是負數。

6560153-9427ab5878d947be.png

這邊有一個問題他沒講到。 假設[1, 1000] 我們要return的是2.這裡要加一個條件,如果數大於了array size的話,這個數之前肯定有東西miss。所以這個數跟負數一樣也不考慮。

6560153-d2522959b78d136a.png


Better:

6560153-3cbe4fcc3955c1f2.png


6560153-1fc6e62a6003ac66.png

這個思路其實有一點繞,我2月的時候也是做過這題。但是由於思路太繞經常過幾天就忘了


6560153-c208fc56e5473e31.png

相關文章