[Python] 리트코드 1004. Max Consecutive Ones III (슬라이딩 윈도우)


[Python] 리트코드 1004. Max Consecutive Ones III (슬라이딩 윈도우)

k번 만큼 0을 1로 바꿔서 구할 수 있는 1로만 이뤄진 연속된 가장 긴 리스트의 길이를 구하는 문제 풀이를 보고도 이해하기 어려웠던 문제.. 정답 풀이 i : 연속된 1이 처음 시작하는 위치 / j : 포인터 모든 반복에서 k가 0일 때, k-=1 윈도우 내에서 0의 개수가 k를 초과했을 때 nums[i] == 0 인 경우, k +=1 (0을 1로 바꿀 수 있는 기회를 한 번 더 주는 것) nums[i] == 1인 경우, k +=0 (0을 1로 바꿀 수 있는 기회 더 안줌) 위 두가지 경우 모두에서 i 위치를 오른쪽으로 한 칸 옮겨줌 (기회를 주거나, 안 주는 이유) j는 포인터니까 반복할 때마다 값이 증가 / i는 k < 0 일 때만 증가 즉, 윈도우 안에서 바꿀 수 있는 0의 개수가 한정되도록 유지됨 이후 j-i+1 로 윈도우의 최대 길이 구할 수 있음 (in 위 조건 부합하는 조건) class Solution: def longestOnes(self, nums: List[int...



원문링크 : [Python] 리트코드 1004. Max Consecutive Ones III (슬라이딩 윈도우)