LeetCode 219--- Contains Duplicate II

题目链接:LeetCode 219— Contains Duplicate II

题目大意:判断给定数组中是否存在索引序号相差最大为k的两个相等的项

使用一个哈希表的思路即可轻松解决,实现代码如下:


public class Problem219 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

    }
    public boolean containsNearbyDuplicate(int[] nums, int k) {
        HashMap<Integer,Integer> hashtable = new HashMap<Integer,Integer>();

        for(int i = 0; i < nums.length; i++){
            if(hashtable.containsKey(nums[i]) && i - hashtable.get(nums[i]) <=k){
                   return true;
            }
            hashtable.put(nums[i],i);
        }

        return false;
    }

}

你可能感兴趣的:(LeetCode,算法)