美文网首页
LeetCode 904. 水果成篮

LeetCode 904. 水果成篮

作者: 草莓桃子酪酪 | 来源:发表于2022-07-09 04:12 被阅读0次
题目

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

  • 你只有两个篮子,并且每个篮子只能装单一类型的水果。每个篮子能够装的水果总量没有限制。
  • 你可以选择任意一棵树开始采摘,你必须从每棵树(包括开始采摘的树)上恰好摘一个水果 。采摘的水果应当符合篮子中的水果类型。每采摘一次,你将会向右移动到下一棵树,并继续采摘。
  • 一旦你走到某棵树前,但水果不符合篮子的水果类型,那么就必须停止采摘。

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

方法:滑动窗口

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

  • 若此时 types 中存在两种水果且此位置的水果并非前两种水果,那么 end 将回到最后一次出现不同水果的位置(即在这个数列中此位置之后的所有水果均与此水果种类相同)。
  • 若此时 types 中不存在任何水果或只存在一种水果或者此位置的水果为前两种水果之一,那么此种水果的 value 将加一,并且若此水果在 types 中并不存在, 那么 start 将记录此位置,之后 end 继续向右移动。
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
相关知识
  • 字典:
    dict = {key1: value1, key2: value2,...}
    get(key, default = None): dict.get()
    返回指定键的值,若此指定键不存在,那么返回默认值。
    values(): dict.values()
    返回所有的值
报错
  • TypeError: get() takes no keyword arguments
    types[fruits[end]] = types.get(fruits[end], default = 0) + 1
    default 并非内置参数不能直接使用,除去即可
参考

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

相关文章

  • LeetCode 904. 水果成篮

    题目 你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示,其中 fruits...

  • 904. 水果成篮(Python)

    难度:★★★☆☆类型:数组方法:滑动窗口 题目 力扣链接请移步本题传送门[https://leetcode-cn....

  • leetcode - 904 水果成篮

    在一排树中,第 i 棵树产生 tree[i] 型的水果。你可以从你选择的任何树开始,然后重复执行以下步骤:把这棵树...

  • 水果篮

  • 一篮水果

    手机“嘀”地响了一下,我拿起来一看,“我到医院看你。”。是厂里一位同事,用她的话说,厂里很多关系仅是认识而已。她来...

  • 滑动窗口(二)——leetcode No. 904. Fruit

    题目: In a row of trees, the i-th tree produces fruit with ...

  • 李子

    晚饭后去水果店买水果,一篮子李子碧绿如玉,让人馋得直流口水。买?不买!买?不买!……,站在那篮李子前犹豫半天...

  • 零基础新手学彩铅画画

    新手不怕笑话,依然去学习, 今天学习水果篮。

  • 《彼岸花开》第八十七章 难解

    草场上的青年男女不知何时起人人手中都捧着一篮水果,云雪岸也被塞上一篮,他莫名地看了看眼前的水果,转身又去寻刚才...

  • 赞草原美景

    一成良 边疆托草原, 草原衬篮天。 篮天抱白云, 白云赏景甜。

网友评论

      本文标题:LeetCode 904. 水果成篮

      本文链接:https://www.haomeiwen.com/subject/qlhmprtx.html