본문 바로가기
알고리즘 문제/Java

[LeetCode/Java] Contains Duplicate II

by 현장 2026. 6. 21.

-Code

import java.util.*;

public class LeetCode219 {
    public boolean containsNearbyDuplicate(int[] nums, int k) {
        // 속도를 위한 map 선언
        Map<Integer, Integer> numAndIdx = new HashMap<>();
        // 계산
        for (int i = 0; i < nums.length; i++) {
            // 포함되어 있고 index의 차이가 k이하인 경우 true
            if (numAndIdx.containsKey(nums[i]) &&
                    Math.abs(i - numAndIdx.get(nums[i])) <= k) return true;
            numAndIdx.put(nums[i], i);
        }
        // 조건이 아니면 false
        return false;
    }
}

처음에 쉽게 풀려고 2중 for문으로 했으나 시간 초과 문제가 생겨 map으로 index와 같이 저장해서 로직을 짰습니다. 하지만 중복 수가 나오는 부분을 생각을 못해서 이를 최신화를 계속해보라는 힌트로 해결했습니다.

'알고리즘 문제 > Java' 카테고리의 다른 글

[LeetCode/Java] Reverse Bits  (0) 2026.06.23
[LeetCode/Java] Add Digits  (0) 2026.06.22
[goormlevel/Java] 최고의 검사  (0) 2026.06.20
[LeetCode/Java] Unique Paths  (0) 2026.06.19
[LeetCode/Java] Rotting Oranges  (0) 2026.06.18