lintcode 水果成籃

2021-09-20 10:01:17 字數 1178 閱讀 7368

在一排樹中,第 i 棵樹產生 tree[i] 型的水果。

你可以從你選擇的任何樹開始,然後重複執行以下步驟:

把這棵樹上的水果放進你的籃子裡。如果你做不到,就停下來。

移動到當前樹右側的下一棵樹。如果右邊沒有樹,就停下來。

請注意,在選擇一顆樹後,你沒有任何選擇:你必須執行步驟 1,然後執行步驟 2,然後返回步驟 1,然後執行步驟 2,依此類推,直至停止。

你有兩個籃子,每個籃子可以攜帶任何數量的水果,但你希望每個籃子只攜帶一種型別的水果。

用這個程式你能收集的水果總量是多少

示例 1:

輸入: [1,2,1]

輸出: 3

解釋: 我們可以收集 [1,2,1].

示例 2:

輸入: [1,2,3,2,2]

輸出: 4

解釋: 我們可以收集 [2,3,2,2].

如果我們從第一棵樹開始,我們將只能收集到 [1, 2].

設定兩個指標left和right,初始狀態left = 0, right = 1, right右邊這個水果如果和現在籃子中的水果一樣,那麼總數就加一,如果不一樣就更改left和right指標。

這裡要注意兩個問題:

有可能初始時籃框裡面放的是一樣的水果,這裡需要加乙個判斷。

更改left指標的時候,left不一定更改到現在的right處,要找到最左邊的一樣的水果。

123

4567

891011

1213

1415

1617

1819

2021

2223

2425

2627

2829

3031

3233

3435

3637

3839

4041

4243

4445

46

class solution 

else

else

right++;

temp[0] = tree[left];

temp[1] = tree[right];}}

}return m;}};

-------------end of file

thanks for reading-------------

904 水果成籃

weekly contest 102的第一題水果成籃 在一排樹中,第 i 棵樹產生tree i 型的水果。你可以從你選擇的任何樹開始,然後重複執行以下步驟 把這棵樹上的水果放進你的籃子裡。如果你做不到,就停下來。移動到當前樹右側的下一棵樹。如果右邊沒有樹,就停下來。請注意,在選擇一顆樹後,你沒有任何...

904 水果成籃

你正在探訪一家農場,農場從左到右種植了一排果樹。這些樹用乙個整數陣列 fruits 表示,其中 fruits i 是第 i 棵樹上的水果 種類 你想要盡可能多地收集水果。然而,農場的主人設定了一些嚴格的規矩,你必須按照要求採摘水果 你只有 兩個 籃子,並且每個籃子只能裝 單一型別 的水果。每個籃子能...

Leetcode 904 水果成籃

在一排樹中,第i棵樹產生tree i 型的水果。你可以從你選擇的任何樹開始,然後重複執行以下步驟 把這棵樹上的水果放進你的籃子裡。如果你做不到,就停下來。移動到當前樹右側的下一棵樹。如果右邊沒有樹,就停下來。請注意,在選擇一顆樹後,你沒有任何選擇 你必須執行步驟 1,然後執行步驟 2,然後返回步驟 ...