ALGORITHM/Java algorithm

[JAVA][LeetCode] #219. Contains Duplicate II

호이호이호잇 2024. 4. 24. 18:13
728x90
반응형

문제 / 예제 / 제한조건 :

 

겹치는 수의 인덱스 차이가 k보다 적게 나는 것이 1개라도 있으면 true!

 

매우매우 기분 좋게 한 번에 아주 좋은 결과로 통과해부렀지〰️

 


해결방법

나는 map에 num값을 key로 Index 값을 value로 저장해두고,

같은 num값이 있을 경우, index 값을 비교해서 k 보다 크면 더 큰 (최신)  index 값을 저장하여 index 값을 업데이트 해주는 식으로 하였다.

class Solution {
    public boolean containsNearbyDuplicate(int[] nums, int k) {
        HashMap<Integer, Integer> map = new HashMap<>();

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

        return false;
    }
}
Time Complexity : O(n)
Space Complexity : O(n)

Easy라서 그런지 한 번에 아주 만족스러운 결과! 빰빰!

 

728x90
반응형