iT邦幫忙

0

[leetcode - Bliend-75 ] 217. Contains Duplicate (Easy)

  • 分享至 

  • xImage
  •  

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,這題使用 for-loop遍歷 nums 陣列後用 hash-table 記錄每個 item 出現的次數,如果出現超過 1 次則回傳 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

Coding

var containsDuplicate = function(nums) {
    const map = new Map();
    for (let i = 0; i < nums.length; i++) {
        if (!map.get(nums[i])) {
            // if item is not exist in hash-table  -> insert into hash-table
            map.set(nums[i], 1);
        } else {
            // item is exist in hash-table
            return true;
        }
    }
    return false;
};

hash-table 的 get 為 O(1) 而 for-loop 遍歷 nums 陣列為 O(n)

  • Time complexity: O(n)
  • Space complexity: O(n)

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言