2958. Length of Longest Subarray With at Most K Frequency

양성준·2025년 4월 22일

코딩테스트

목록 보기
34/102

문제

https://leetcode.com/problems/length-of-longest-subarray-with-at-most-k-frequency/description/

풀이

class Solution {
    public int maxSubarrayLength(int[] nums, int k) {
        int lt = 0;
        int max = Integer.MIN_VALUE;

        Map<Integer, Integer> map = new HashMap<>();

        for(int rt = 0; rt < nums.length; rt++) {
            map.put(nums[rt], map.getOrDefault(nums[rt],0) + 1);
            while(map.get(nums[rt]) > k) {
                map.put(nums[lt], map.get(nums[lt]) - 1);
                lt++;
            }

            max = Math.max(max, rt - lt + 1);
        }

        return max;
    }
}
  • 기본적인 슬라이딩 윈도우 문제
    • rt를 늘려가며 각 원소에 대해 카운팅 + 탐색해나가다, map.get(nums[rt])가 k를 넘는 순간에 lt를 이동 -> 이동하면서 자연스레 nums[lt]에 대한 카운팅 --;
profile
백엔드 개발자

0개의 댓글