219. Contains Duplicate II java solutions

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 jis at most k.

 

Subscribe to see which companies asked this question

 1 public class Solution {
 2     public boolean containsNearbyDuplicate(int[] nums, int k) {
 3         if(nums.length <= 1 || nums == null) return false;
 4         HashMap<Integer,Integer> hm = new HashMap<Integer,Integer>();
 5         for(int i = 0;i<nums.length; i++){
 6             if(hm.containsKey(nums[i])){
 7                 int j = hm.get(nums[i]);
 8                 if(i-j <= k) return true;
 9                 hm.put(nums[i],i);
10             }else{
11                 hm.put(nums[i],i);
12             }
13         }
14         return false;
15     }
16 }

AC 代码不是很好

posted @ 2016-05-06 18:08  Miller1991  阅读(167)  评论(0编辑  收藏  举报