摘要:前言的第一題水果成籃在一排樹中,第棵樹產生型的水果。你有兩個籃子,每個籃子可以攜帶任何數量的水果,但你希望每個籃子只攜帶一種類型的水果。
前言
Weekly Contest 102的第一題水果成籃:
解題思路在一排樹中,第 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 個水果。
這題其實要求其實很簡單,就是找出數組中長度最大的連續由2種元素構成的子數組,返回這個子數組的長度。但是實際解題的時候需要注意,由于本題有時間限制,只是單純實現功能會出現執行超時的情況,需要對實現進行一定的優化。
實現代碼public int totalFruit(int[] tree) { int max=0; //可能的最大值 int probableMax=tree.length; for (int i=0;i=probableMax){//如果最大值大于或等于可能的最大值,則意味不需要繼續進行運算了,直接中斷循環 break; } --probableMax; for(int j=i+1;j
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/77137.html
Problem 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: Add one piece of fruit from this tree to y...
摘要:元組是有序且不可更改或不可修改不可變的集合。不允許重復成員。列表是有序且可修改可變的不同數據類型的集合。避免上述問題的一種方法是使用。計數橙色年齡,,,,,,,打印年齡。語法反轉水果香蕉,橙色,芒果,檸檬水果。按字母順序排序,年齡。 ...
摘要:智能手機剛剛普及時,水果忍者這款小游戲可謂風靡一時。幾年過去了,現在,讓我們用純來實現這個水果忍者游戲,就算是為了錘煉我們的開發技能吧。那么只需要修改函數,如下圖的紅色分支就是切到水果的分支,執行加分和顯示水果被切成兩半的效果。 智能手機剛剛普及時,水果忍者這款小游戲可謂風靡一時。幾年過去了,現在,讓我們用純JavaScript來實現這個水果忍者游戲,就算是為了錘煉我們的JavaScr...
摘要:主要詳解簡單工廠模式到抽象工廠模式的演變。抽象工廠模式當一個類別的產品還有多個系列區分時,為了按系列生產商品,使用抽象工廠區分。 主要詳解簡單工廠模式到抽象工廠模式的演變。 簡單工廠模式 即靜態工廠模式1.將對象的創建和使用分開;2.將生產過程集中,便于集中管理;3.當需要創建的對象類有變動時,就不用在所有new 的地方修改了,直接修改工廠類即可; /** * 簡單工廠模式 ---...
閱讀 1117·2023-04-26 03:02
閱讀 1161·2023-04-25 19:18
閱讀 2583·2021-11-23 09:51
閱讀 2561·2021-11-11 16:55
閱讀 2614·2021-10-21 09:39
閱讀 1694·2021-10-09 09:59
閱讀 1991·2021-09-26 09:55
閱讀 3512·2021-09-26 09:55