코딩테스트

[leetcode] 1493. Longest Subarray of 1's After Deleting One Element

nayoon 2024. 6. 25. 07:28

문제

 

1004 문제와 동일한 방식으로 풀었고 Sliding Window를 이용해서 풀되 하나의 요소를 삭제하면 더 긴 subarray를 만들 수 있기 때문에 조건을 잘 체크해야한다.

 

개인적으로는 1493번을 먼저 풀고 1004번을 푸는 것이 좋을 것 같다.

class Solution {
    public int longestSubarray(int[] nums) {
        int num = 0;
        int start = 0;
        int index = 0;
        int max = 0;

        while(index < nums.length) {
            if (nums[index] == 0) {
                if (num == 1) {
                    while(nums[start++] == 1) {}
                } else {
                    num += 1;
                }
            }

            index += 1;
            if (index - start > max) {
                max = index - start;
            }
        }

        if (max == 0) {
            return max;
        }
        return max - 1;
    }
}