跟我一起刷leetCode算法题10之Contains Duplicate

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;
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,623评论 19 139
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,353评论 0 33
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,813评论 0 17
  • “你们的游戏好玩吗?”“我说了,这不是游戏。” 明亮的大眼睛望着铁网对面原本应该是无忧无虑却苍白如纸的小脸,阳光强...
    轻字阅读 1,384评论 0 0
  • 校区:科学创想乐高机器人和平校区 时间:周六9:00-10:00 学员:元宝,童童 任教老师:杨玲 教学目标: 1...
    Happy00阅读 4,721评论 0 0