码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode 219 Contains Duplicate II

时间:2015-06-30 12:28:01      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

Given an array of integers and an integer k, find out whether there there are two distinct indices i and j in the array such that nums[i] = nums[j]and the difference between i and j is at most k.

Hash基本操作,纪录每个值对应的位置,然后对于每个新检测到的值,检查该数是否之前已经有在hash中存在的下标,且当前下标与hash中存储的下标差小于k。否则更新hash中的下标。

if(h.hasOwnProperty(nums[i]) && i-h[nums[i]]<=k)

为了防止直接使用 h[nums[i]],使得下标0被判定为false,所以使用h.hasOwnProperty。

var containsNearbyDuplicate = function(nums, k) {
    var h = {}
    for(var i=0;i<nums.length;i++){
        if(h.hasOwnProperty(nums[i]) && i-h[nums[i]]<=k)
            return true
        else
            h[nums[i]] = i
    }
    return false
}

 

Leetcode 219 Contains Duplicate II

标签:

原文地址:http://www.cnblogs.com/lilixu/p/4609776.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!