LeetCode 904. 水果成篮

2022-07-09  本文已影响0人  草莓桃子酪酪
题目

你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示,其中 fruits[i] 是第 i 棵树上的水果种类。
你想要尽可能多地收集水果。然而,农场的主人设定了一些严格的规矩,你必须按照要求采摘水果:

给你一个整数数组 fruits ,返回你可以收集的水果的最大数目。

方法:滑动窗口

start:出现非前一种水果类型的新水果类型的位置
end:向右移动
result:返回的水果数量
types:水果信息的字典({水果类型:数量,...})

class Solution(object):
    def totalFruit(self, fruits):
        start = end = 0
        result = 0
        types = {}
        while end < len(fruits):
            if len(types) == 2 and types.get(fruits[end]) is None:
                end = start
                types = {}
            else:
                types[fruits[end]] = types.get(fruits[end], 0) + 1
                if fruits[end] != fruits[start]:
                    start = end
                end = end + 1
            result = max(result, sum(types.values()))
        return result
相关知识
报错
参考

代码相关:https://leetcode-cn.com/problems/fruit-into-baskets/solution/python-shuang-zhi-zhen-ono1jie-fa-by-hardcandy/

上一篇下一篇

猜你喜欢

热点阅读