存在重复元素

题面:

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

解法一:哈希表

遍历数组nums,将nums的元素值对应为新数组newnum的下标,如果该位置元素值不为空,说明nums中的这个元素重复了。

/**
 * @param {number[]} nums
 * @return {boolean}
 */
var containsDuplicate = function(nums) {
    var newnum = [];
    for(var i=0;i<nums.length;i++){
        if(newnum[nums[i]] == 1){ 
            return true;
        }
        else{
            newnum[nums[i]] = 1;
        }
    }
    return false;
};
解法二:排序

数组nums排序后比较相邻两元素的值是否相等

/**
 * @param {number[]} nums
 * @return {boolean}
 */
var containsDuplicate = function(nums) {
    nums.sort();
    for(let i=0;i<nums.length;i++){
        if(nums[i] == nums[i+1]){
            return true;
        }
    }
    return false;
};
解法三:set

把nums放入set中,如果set的长度小于原数组长度,则存在重复

/**
 * @param {number[]} nums
 * @return {boolean}
 */
var containsDuplicate = function(nums) {
    let set = new Set(nums);
    return set.size != nums.length;
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容