Contains Duplicate II

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.

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

reference:https://leetcode.com/discuss/60630/short-ac-java-solution

原文地址:https://www.cnblogs.com/hygeia/p/5084554.html