题目描述如下:
给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回 true 。
如果数组中每个元素都不相同,则返回 false 。
function hasDuplicateItem(list) { // 具体实现 } let list1 = [1, 2, 3]; let list2 = [1, 2, 3, 2]; console.log(hasDuplicateItem(list1)); // false console.log(hasDuplicateItem(list2)); // true
/** * 检查是否存在重复元素 * 思路1:哈希表 + 计数类型 * @param {*} list */ function hasDuplicateItem(list) { const map = new Map(); for (let item of list) { if (map.has(item)) { return true; } else { map.set(item, 1); } } return false; }
/** * 检查是否存在重复元素 * 思路2:集合去重 * @param {*} list */ function hasDuplicateItem(list) { const set = new Set(list); return set.size != list.length; }
参考
Leetcode 最常见的 150 道前端面试题 (简单题 -上篇)