美文网首页
leetcode算法练习- 存在重复元素

leetcode算法练习- 存在重复元素

作者: 土豪码农 | 来源:发表于2019-03-20 07:37 被阅读0次

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

如果任何值在数组中出现至少两次,函数返回 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

第一次提交

用了一个比较笨的方法,把元素都变成obj里面的key,利用hasOwnProperty,判断是否有重复,并且用some方法循环,一旦有重复就会终止程序返回true

var containsDuplicate = function(nums) {
    const obj = {};
    return nums.some((item)=>{
        if(!obj.hasOwnProperty(item)){
            obj[item] = item
            return false
        }else{
            return true
        }
    })
};
QQ截图20190320074000.png

第二次提交

第二次想到了一个更加精妙的办法,利用es6新增的Set去重,对比去重吼的长度和去重前的长度,不就知道是否有存在重复的元素了,大概看了已经算最佳实现了

var containsDuplicate = function(nums) {
    return new Set(nums).size !== nums.length
};
QQ截图20190320074021.png

相关文章

网友评论

      本文标题:leetcode算法练习- 存在重复元素

      本文链接:https://www.haomeiwen.com/subject/ptjamqtx.html