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

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)

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章