본문 바로가기
Algorithm

[Algorithm][Array] 문제 풀이 #9 - Sliding Window Maximum

by Lee David 2022. 7. 19.
반응형
문제 링크

https://leetcode.com/problems/sliding-window-maximum/

내 코드
public int[] maxSlidingWindow(int[] nums, int k) {
        if(k == 1) return nums;
        int[] result = new int[nums.length - k + 1];
        int max = Integer.MIN_VALUE;
        
        int count = 1;
        int maxIndex = 0;
        int resultIndex = 0;
        boolean start = false;
        
        for(int i = 0; i < nums.length; i++) {
            if (i - maxIndex > k - 1)
                max = Integer.MIN_VALUE;
            if(max <= nums[i]) {
                max = nums[i];
                maxIndex = i;
            }
            
            if(i != 0 && i % (k - 1) == 0) {
                start = true;
            }
            
            if(start) {
                while(count > 0) {
                    if(resultIndex < result.length)
                        result[resultIndex++] = max;
                    count--;
                }
                
                count = 1;
            }
        }
        
        return result;
    }
결과

하드는 하드네...

처음 부분은 쉬운것 같은데 시작하다가 코드를 짜면 짤수록 더 어려워지는 느낌...

좀 더 개선해야 하겠지만 어제 오늘 시간을 너무 잡아먹어서 일단 여기까지!

반응형