#217. Contains Duplicate

題目描述

給你一個整數陣列nums,如果有任何數值出現至少兩次就回傳true,如果每個數字都是單一的則回傳false

限制條件

  1. 1 <= nums.length <= 10^5
  2. -10^9 <= nums[i] <= 10^9

解題思路

Hash Table

最直覺的方式就是利用雜湊表來記錄數字是否出現過,

public class Solution { 
	public bool ContainsDuplicate(int[] nums) {
        var hs = new HashSet<int>();
        for(int i=0;i<nums.Length;i++){
            if(hs.Contains(nums[i])){
                return true;
            }else{
                hs.Add(nums[i]);
            }
        }
        return false;
    }
}

複雜度分析:

  • 時間複雜度:最糟的情況下要檢查完所有陣列元素,因此時間複雜度為O(n)。
  • 空間複雜度:最糟的情況下要記錄完所有陣列元素,因此空間複雜度為O(n)。

學習重點

  • 雜湊表
Last Updated:
Contributors: eisen