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

Leetcode Contains Duplicate II

时间:2015-09-22 06:36:31      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:

Given an array of integers and an integer k, find out whether 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.


解题思路:

想到了一种结构map, key 是该值,value是该值对应的前一个index.


Java code:

public boolean containsNearbyDuplicate(int[] nums, int k) {
        Map<Integer, Integer> values = new HashMap<Integer, Integer>(); //first is value, second is current index
        for(int i = 0; i< nums.length; i++){
            if(values.containsKey(nums[i])){
                int x = values.get(nums[i]);
                if((i-x) <= k) {
                    return true;
                }
            }
            values.put(nums[i], i);
        }
        return false;
    }

 

Leetcode Contains Duplicate II

标签:

原文地址:http://www.cnblogs.com/anne-vista/p/4827794.html

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