LeetCode刷題:存在重複元素 II

題目

給定一個整數數組和一個整數 k,判斷數組中是否存在兩個不同的索引 i 和 j,使得 nums [i] = nums [j],並且 i 和 j 的差的絕對值最大爲 k。

示例 1:

輸入: nums = [1,2,3,1], k = 3
輸出: true

示例 2:

輸入: nums = [1,0,1,1], k = 1
輸出: true

示例 3:

輸入: nums = [1,2,3,1,2,3], k = 2
輸出: false

題解
用hashMap解決
時間和內存消耗爲:
在這裏插入圖片描述
代碼爲:

			class Solution {
    public boolean containsNearbyDuplicate(int[] nums, int k) {
        Map <Integer,Integer>  ans=new HashMap<>();
        for(int i=0;i<nums.length;i++){
            if(ans.containsKey(nums[i])){
                if(k-(i-ans.get(nums[i]))>=0){
                    return true;
                }
            }
            ans.put(nums[i],i);
        }
        return false;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章