失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 给定一个整数数组 判断是否存在重复元素。

给定一个整数数组 判断是否存在重复元素。

时间:2024-01-31 03:19:49

相关推荐

给定一个整数数组 判断是否存在重复元素。

存在重复元素

给定一个整数数组,判断是否存在重复元素。

如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false

示例 1:

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

输出: true

作者:力扣 (LeetCode)

链接:https://leetcode-/leetbook/read/top-interview-questions-easy/x248f5/

来源:力扣(LeetCode)

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

1,依次遍历,用nums[i]与数组中后面的数字对比是否相等(使用for):

var containsDuplicate = function (nums) {let flag = falsefor (let i = 0; i < nums.length; i++) {for (let o = i + 1; o < nums.length; o++) {if (nums[i] === nums[o]) {flag = true}}}return flag};

2,依次遍历,用nums[i]与数组中后面的数字对比是否相等(使用include),判断i后面的数组中是否包含nums[i]:

var containsDuplicate = function (nums) {let flag = falsefor (let i = 0; i < nums.length; i++) {if ((nums.slice(i + 1, nums.length)).includes(nums[i])) {flag = true}}return flag};

3,使用哈希

var containsDuplicate3 = function (nums) {let tempNums = []for (let i in nums) {if (tempNums[nums[i]]) {return true}tempNums[nums[i]] = true;}return false}

上面这个是通过javascript的哈希而来

首先要了解javascript中对象,数组,对象都可以看作是键-值,如下面的演示:

const person = [];person["name"] = "小明"person["age"] = 18person["hobbies"] = '睡觉'// console.dir(person);for (const key in person) {console.log(key + ":" + person[key]);}

而在3中,依次遍历nums中的对象,如果tempNums[nums[i]]中的对象为true,

那么就将返回true,并终止运行后面的代码,

那么它是如何遍历到重复数组返回true的呢:

如果有一个数组:let nums = [2, 14, 18, 22, 22]

在遍历2时,tempNums中不存在,则在tempNums[2]中标记为true,

在便利到第一个22时,会将tempNums[22]标记为true,

那么在遍历第二个22时,i=4(nums中的index),tempNums[22]之前已经被标为true了,

所以就直接返回true,不必再往后运行

神奇and迷惑

如果觉得《给定一个整数数组 判断是否存在重复元素。》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。