作者:力扣 (LeetCode) 链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x248f5/

来源:力扣(LeetCode)

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

题目

给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false

示例 1:

输入: [1,2,3,1] 输出: true

示例 2:

输入: [1,2,3,4]

输出: false

示例 3:

输入: [1,1,1,3,3,4,3,2,4,2]

输出: true

题解

  1. /**
  2. * @param {number[]} nums
  3. * @return {boolean}
  4. */
  5. var containsDuplicate = function(nums) {
  6. let map = new Map();
  7. for (let i = 0; i < nums.length; i++) {
  8. let cur = map.get(nums[i]);
  9. if (cur && cur === 1) {
  10. map.set(nums[i], 2);
  11. } else {
  12. map.set(nums[i], 1);
  13. }
  14. if (map.get(nums[i]) > 1) {
  15. return true;
  16. }
  17. }
  18. return false;
  19. };
  20. // 或者用Set,这种其实更好
  21. var containsDuplicate = function(nums) {
  22. const set = new Set();
  23. for (const x of nums) {
  24. if (set.has(x)) {
  25. return true;
  26. }
  27. set.add(x);
  28. }
  29. return false;
  30. };

官方题解:
https://leetcode-cn.com/problems/contains-duplicate/solution/cun-zai-zhong-fu-yuan-su-by-leetcode-sol-iedd/