[LeetCode] 904. Fruit Into Baskets 水果装入果篮

In a row of trees, the?i-th tree?produces?fruit with type?tree[i].

You?start at any tree?of your choice, then repeatedly perform the following steps:

  1. Add one piece of fruit from this tree to your baskets.? If you cannot, stop.
  2. Move to the next tree to the right of the current tree.? If there is no tree to the right, stop.

Note that you do not have any choice after the initial choice of starting tree:?you must perform step 1, then step 2, then back to step 1, then step 2, and so on until you stop.

You have two baskets, and each basket can carry any quantity of fruit, but you want each basket to only carry one type of fruit each.

What is the total amount of fruit you can collect with this procedure?

Example 1:

Input: [1,2,1]
Output: 3
Explanation: We can collect [1,2,1].

Example 2:

Input: [0,1,2,2]
Output: 3 Explanation: We can collect [1,2,2].
If we started at the first tree, we would only collect [0, 1].

Example 3:

Input: [1,2,3,2,2]
Output: 4 Explanation: We can collect [2,3,2,2].
If we started at the first tree, we would only collect [1, 2].

Example 4:

Input: [3,3,3,1,2,1,1,2,3,3,4]
Output: 5  Explanation: We can collect [1,2,1,1,2].
If we started at the first tree or the eighth tree, we would only collect 4 fruits.

Note:

  1. 1 <= tree.length <= 40000
  2. 0 <= tree[i] < tree.length

Github 同步地址:

https://github.com/grandyang/leetcode/issues/CHANGE_ME

参考资料:

https://leetcode.com/problems/fruit-into-baskets/

LeetCode All in One 题目讲解汇总(持续更新中...)

原文地址:https://www.cnblogs.com/grandyang/p/11129845.html

时间: 2024-10-02 09:51:41

[LeetCode] 904. Fruit Into Baskets 水果装入果篮的相关文章

[leetcode]Fruit Into Baskets

滑动窗口,原来可以通过循环嵌套循环的方式实现. class Solution: def totalFruit(self, tree: List[int]) -> int: result = 0 fruitDict = {} i = 0 # assert i <= j for j in range(len(tree)): x = tree[j] if x not in fruitDict: fruitDict[x] = 0 fruitDict[x] += 1 while len(fruitDic

使用NGUI模仿制作“切水果”

只做学习之用,无任何商业元素 如有侵权,即删除 首先,载入NGUI包,完成后如下图所示: 新建一个Sprite 然后,设置UIRoot 注意:图中画圈的部分--Scaling Style设置为"Fixed Size On Mobiles"顾名思义,整个画面开启UI整体缩放支持(在手机中) 调整Main Camera的监控范围,使得和UIRoot下的Camera同样大小. 开始新建图集(Fruit) 将图片选中,所有图片就会出现在以后View Sprites下,如图 然后在刚才新建立的S

题解报告:hdu 1263 水果

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1263 Problem Description 夏天来了~~好开心啊,呵呵,好多好多水果~~ Joe经营着一个不大的水果店.他认为生存之道就是经营最受顾客欢迎的水果.现在他想要一份水果销售情况的明细表,这样Joe就可以很容易掌握所有水果的销售情况了. Input 第一行正整数N(0<N<=10)表示有N组测试数据. 每组测试数据的第一行是一个整数M(0<M<=100),表示工有M次成功的

CNPC海外操作人员英语日常用语900句

一.Greetings 问候语1. Hello! / Hi! 你好!2. Good morning / afternoon / evening! 早晨(下午/晚上)好!3. I’m Kathy King. 我是凯西•金.4. Are you Peter Smith? 你是彼得•史密斯吗?5. Yes, I am. / No, I’m not. 是,我是./ 不,我不是.6. How are you? 你好吗?7. Fine, thanks. And you? 很好,谢谢,你呢?8. I’m fi

words2

餐具:coffee pot 咖啡壶coffee cup 咖啡杯paper towel 纸巾napkin 餐巾table cloth 桌布tea -pot 茶壶tea set 茶具tea tray 茶盘caddy 茶罐dish 碟plate 盘saucer 小碟子rice bowl 饭碗chopsticks 筷子soup spoon 汤匙knife 餐刀cup 杯子glass 玻璃杯mug 马克杯picnic lunch 便当fruit plate 水果盘toothpick 牙签中餐:bear's

使用JavaScript制作页面特效2

1.Date对象的常用方法 setFullYear() setMonth() setDate() setHours() setMinutes() setSeconds() 定时函数 setTimeout:等待某段时间后调用某个函数(1次) 语法:setTimeout("调用的函数名称",等待时间) 消除:clearTimeout() setInterval:每隔某段时间反复调用某个函数(多次) 语法:setInterval("调用的函数名称",间隔时间) 清除:cl

设计模式3 创建型模型

设计模式3 创建型模型 目录: 简单工厂模式 工厂方法模式 抽象工厂模式 单例模式 简单工厂 模型 [email protected]:~$ cat main.cpp  //设计模式:简单工厂 模型 #include<iostream> using namespace std; class Fruit { public: Fruit(string kind) { this->kind = kind; if(kind == "apple") {} else if (ki

140904●查询语句

DDL(数据定义语言) Create.Drop.Alter DML(数据操纵语言) CRUD(增加(Create).读取(Retrieve)(重新得到数据).更新(Update)和删除(Delete)) DCL(数据控制语言) 增加数据 insert into 表 values ('值')    --into可以省略,值可以写多个,用逗号隔开,不过要对应列 例:insert into fruit values ('k008','梨','3','莱阳','3','100','') insert  

Java设计模式之认识阶段

设计模式是什么? 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结. 其本质就是继承与接口的组合应用. 为什么要用设计模? 使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性.提高工作效率. 设计模式的分类: 设计模式按目的可分为三种类型,共23种. 创建型模式:单例模式.抽象工厂模式.建造者模式.工厂模式.原型模式. 结构型模式:适配器模式.桥接模式.装饰模式.组合模式.外观模式.享元模式.代理模式. 行为型模式:模版