LeetCode Js-217. Contains Duplicate

    LeetCode Js-Array

    Given an integer array nums, return true if any value appears at least twice in the array, and return false if every element is distinct.

    給予一個整數陣列 nums,如果有任何的值出現最少兩次在陣列中則回傳 true,
    如果每個元素都是不同的,則回傳 false。
    

    Example 1:

    Input: nums = [1,2,3,1]
    Output: true
    

    Example 2:

    Input: nums = [1,2,3,4]
    Output: false
    

    Example 3:

    Input: nums = [1,1,1,3,3,4,3,2,4,2]
    Output: true
    

    Solution:
    1. 建立 hashTable 物件。
    2. 運用「for of」來將 nums 陣列中的數值依序取出。
    3. 判斷該數值是否存在 hashTable 物件中,如有回傳 true,反之在 hashTable 物件存入該數值為名稱,並配對 true。
    4. 沒有重複出現的數值,則回傳 false。

    Code 1: BigO(n)

    var containsDuplicate = function(nums) {
      let hashTable = {}
    
      for (let num of nums) {
        if (hashTable[num]) return true;
        hashTable[num] = true
      }
      return false;
    };
    

    FlowChart:
    Example 1

    Input: nums = [1,2,3,1]
    
    { '1': true }
    { '1': true, '2': true }
    { '1': true, '2': true, '3': true }
    
    if (hashTable[1]) = true, return true
    

    Example 2

    Input: nums = [1,2,3,4]
    
    { '1': true }
    { '1': true, '2': true }
    { '1': true, '2': true, '3': true }
    { '1': true, '2': true, '3': true, '4': true }
    
    return false
    

    Example 3

    Input: nums = [1,1,1,3,3,4,3,2,4,2]
    
    { '1': true }
    
    if (hashTable[1]) = true, return true
    

    // Code 2: BigO(2n)

    var containsDuplicate = function(nums) {
        const hashTable = {}
    
        for (let i = 0; i < nums.length; i++) {
            hashTable[nums[i]] = (hashTable[nums[i]] || 0) + 1
        }
        for (let num of nums) {
            if (hashTable[num] > 1) return true;
        }
        return false;
    };
    

    // Code 3: BigO(n)

    var containsDuplicate = function (nums) {
      const numsSet = new Set();
    
      for (let num of nums) {
        if (numsSet.has(num)) {
          return true;
        } else {
          numsSet.add(num);
        }
      }
      return false;
    };
    

    // Code 4: BigO(n)

    var containsDuplicate = function(nums) {
      const numsSet = new Set(nums)
      return numsSet.size !== nums.length;
    };
    

    // Code 5: BigO(n)

    var containsDuplicate = function(nums) {
      return new Set(nums).size !== nums.length;
    };