跟我一起刷leetCode算法题10之Contains Dupl
2017-08-09 本文已影响27人
打铁大师
217. Contains Duplicate
这是leetCode第217题
题目
Given an array of integers, find if the array contains any duplicates. Your function should return true if any value appears at least twice in the array, and it should return false if every element is distinct.
意思是说:
给出一个整数数组,找出数组是否包含重复项。只要数组中任意一个值出现至少两次,就返回true。如果数组中每个元素都是不同的,那就返回false。
思路:
数组(或对象)的属性是不会重复的。因此我们可以将数组中的每个整数作为新数组的索引,每个整数对应的索引作为新数组的值。每次进行赋值操作前,都判断要新数组上当前整数的代表的索引位置,是否已经有值了。如果存在值了,说明整数重复了,返回true。否则就给新数组赋值。如此反复,直到循环结束。如果没有重复的,就返回false。
代码如下:
/**
* @param {number[]} nums
* @return {boolean}
*/
var containsDuplicate = function(nums) {
var obj = [];
var l = nums.length;
for (var i = 0; i < l; i++) {
if (obj[nums[i]] !== undefined) {
return true;
}
obj[nums[i]] = i;
}
return false;
};