바구니에 담긴 과일
fruits로 표시되며 여기서 fruits[i]는 나무가 생산하는 과일의 유형입니다.가능한 한 많은 과일을 수집하고 싶습니다. 그러나 소유자는 따라야 하는 몇 가지 엄격한 규칙을 가지고 있습니다.
정수 배열
ith이 주어지면 선택할 수 있는 최대 과일 수를 반환합니다.예 1:
입력: 과일 = [1,2,1]
출력: 3
설명: 3개의 나무 모두에서 선택할 수 있습니다.
예 2:
입력: 과일 = [0,1,2,2]
출력: 3
설명: 트리 [1,2,2]에서 선택할 수 있습니다.
첫 번째 트리에서 시작했다면 [0,1] 트리에서만 선택합니다.
예 3:
입력: 과일 = [1,2,3,2,2]
출력: 4
설명: 트리 [2,3,2,2]에서 선택할 수 있습니다.
첫 번째 트리에서 시작했다면 트리[1,2]에서만 선택합니다.
제약:
fruits 1 <= fruits.length <= 105 해결책:
class Solution:
    def totalFruit(self, fruits: List[int]) -> int:
        n = len(fruits)
        i = 0
        j = 0
        ctr = {}
        mlen = 0
        while i <= j and j < n:
            ctr[fruits[j]] = ctr.get(fruits[j], 0) + 1
            j += 1
            if len(ctr) <= 2:
                mlen = max(mlen, j - i)
            else:
                while len(ctr) > 2 and i < j:
                    ctr[fruits[i]] -= 1
                    if ctr[fruits[i]] == 0:
                        del ctr[fruits[i]]
                    i += 1
        return mlen
                Reference
이 문제에 관하여(바구니에 담긴 과일), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/theabbie/fruit-into-baskets-g5i텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)