class Solution:
def totalFruit(self, fruits: List[int]) -> int:
ans, n = 1, len(fruits)
cur, back = 1, 0
cnt = [(fruits[0], 0)]
while cur < n:
if fruits[cur] == fruits[cur-1]:
cur += 1
elif len(cnt) == 1 and fruits[cur] != cnt[0][0]:
cnt.append((fruits[cur], cur))
back = cur
cur += 1
elif fruits[cur] == cnt[0][0]:
cnt.append(cnt[0])
del cnt[0]
back = cur
cur += 1
elif fruits[cur] == cnt[1][0]:
back = cur
cur += 1
elif fruits[cur] not in [cnt[0][0], cnt[1][0]]:
ans = max(ans, cur - min(cnt[0][1], cnt[1][1]))
del cnt[0]
cnt[0] = (cnt[0][0], back)
cur = back
return max(ans, cur - min(cnt[0][1], cnt[1][1])) if len(cnt) == 2 else n
와 오늘 문제 진짜 안 풀리네...
deque 쓸까하다가 del 썼는데 병신짓인거 같음
댓글 0