【LeetCode笔记】448. 找到所有不存在的数(Java、原地)
生活随笔
收集整理的這篇文章主要介紹了
【LeetCode笔记】448. 找到所有不存在的数(Java、原地)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 題目描述
- 思路 & 代碼
題目描述
- 說實話,第一眼看題讓我想到那道“往1 ~ 1024中加入一個數,用中學生也會的方法找到這個數"(答案是 (1024! + x) - 1024! )
- 如果沒有時空復雜度限制的話,用哈希表可以直接做
思路 & 代碼
- 首先找到題目關鍵詞:1 <= a[i] <= n,n為a[ ]的長度。至于“一些出現兩次、一些出現一次”這個倒是不太重要(或者說有Dalao也利用了這個條件)
- 那么,我們只需要達到這樣一個效果即可:遍歷a[i],對于出現過的a[i]值,把對應的下標存儲的值變成一個**”不在[1, n]內,并且可以變回原值的值“**即可。
- 有兩個方法:取負、加n。加n會快一點
- 無注釋版
總結
以上是生活随笔為你收集整理的【LeetCode笔记】448. 找到所有不存在的数(Java、原地)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python字典会自动排序_python
- 下一篇: 【LeetCode笔记】41. 缺失的第