LeetCode 217. Contains Duplicate
題目:
根據題目敘述,會給定一個整數陣列 nums,你必須判斷 nums 中是否有元素值是重複出現的,若有則回傳 true,沒有則回傳 false。
例如輸入 nums=[1, 2, 3, 1],由於元素值 1 重複出現,所以回傳 true。
而若輸入 nums=[1, 2, 3, 4],由於元素值都沒有重複出現,所以回傳 false。
- 1 <= nums.length <= 10^5
- -10^9 <= nums[i] <= 10^9
解法:
這題比 TwoSum 更簡單,因為我們不需要知道重複的元素分別在哪裡,只需要知道當檢查到重複元素值時就回傳 true 就好。
所以一樣可以花一點空間來換時間,也就是用另一個陣列來邊找邊記錄我們已找過的值,當發現 nums[i] 已經有找過時,就代表要回傳 true。
- 時間複雜度 O(N),如何證明檢查存在鍵與拿取存放的時間複雜度請 參考我的另一篇文章 - PHP Array
- 空間複雜度 O(N)
PHP 程式碼:
如果您喜歡我的文章,歡迎幫我在下面按5下讚!感謝您的鼓勵和支持!
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment