Search

2024-03-16 Leetcode Daily Problem

생성일
2024/03/16 13:12
태그
알고리즘
날짜
2024/03/16
3 more properties
처음에 생각 없이 Sliding Window로 접근했다가 잘못 되었음을 깨달았다
length of longest subarray를 구하는 문제이기 때문에 첫 등장을 따로 관리해주기만 하면 문제가 없다
acc_to_prev_id의 변수명이 마음에 들지 않는다
처음에는 그냥 prev라고 지었다가 acc_to_first_idx, acc_to_idx 등 변수명 정하기가 제일 어렵다
class Solution: def findMaxLength(self, nums: List[int]) -> int : res = 0 acc_to_prev_idx = {0: -1} acc = 0 for i, x in enumerate(nums): acc += -1 if x == 0 else 1 if acc in prev: # update the result res = max(res, i - acc_to_prev_idx[acc]) else: # set acc to idx on first occurrence acc_to_prev_idx[acc] = i return res
Python
복사