Leetcode--904. 水果成篮
在一排樹中,第 i 棵樹產生?tree[i] 型的水果。
你可以從你選擇的任何樹開始,然后重復執行以下步驟:
把這棵樹上的水果放進你的籃子里。如果你做不到,就停下來。
移動到當前樹右側的下一棵樹。如果右邊沒有樹,就停下來。
請注意,在選擇一顆樹后,你沒有任何選擇:你必須執行步驟 1,然后執行步驟 2,然后返回步驟 1,然后執行步驟 2,依此類推,直至停止。
你有兩個籃子,每個籃子可以攜帶任何數量的水果,但你希望每個籃子只攜帶一種類型的水果。
用這個程序你能收集的水果總量是多少?
?
示例 1:
輸入:[1,2,1]
輸出:3
解釋:我們可以收集 [1,2,1]。
示例 2:
輸入:[0,1,2,2]
輸出:3
解釋:我們可以收集 [1,2,2].
如果我們從第一棵樹開始,我們將只能收集到 [0, 1]。
示例 3:
輸入:[1,2,3,2,2]
輸出:4
解釋:我們可以收集 [2,3,2,2].
如果我們從第一棵樹開始,我們將只能收集到 [1, 2]。
示例 4:
輸入:[3,3,3,1,2,1,1,2,3,3,4]
輸出:5
解釋:我們可以收集 [1,2,1,1,2].
如果我們從第一棵樹或第八棵樹開始,我們將只能收集到 4 個水果。
?
提示:
1 <= tree.length <= 40000
0 <= tree[i] < tree.length
提交的代碼:
class?Solution?{
????public?int?totalFruit(int[]?tree)?{
????????int?sum?=?0;
?????????int?a,b=-1,max=1;
????????????for(int?i=0;i<tree.length-1;i++)
????????????{
????????????????a?=?tree[i];
????????????????sum?=?1;
????????????????b=-1;
????????????????for(int?j?=i+1;j<tree.length;j++)
????????????????{
????????????????????if(tree[j]!=a)
????????????????????{
????????????????????????if(b==-1)
????????????????????????{
????????????????????????????b?=?tree[j];
????????????????????????}
????????????????????????else?if(tree[j]!=b)
????????????????????????{
????????????????????????????break;
????????????????????????}
????????????????????}
????????????????????sum++;
????????????????}
????????????????max?=?Math.max(sum,?max);
????????????}
????????????return?max;
????}
}
總結
以上是生活随笔為你收集整理的Leetcode--904. 水果成篮的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛客网--字符串合并处理(Java)
- 下一篇: 存储器容量扩展——位扩展、字扩展