分發糖果問題分析

2021-10-12 20:18:31 字數 536 閱讀 2072

分發糖果 (

目標:糖果陣列

約束條件:每個陣列元素大於等於1,相鄰元素大的糖果要更多,總糖果數最小,總糖果數最小,那麼兩個同學之間差值最小就可以保證。

迭代:從第乙個元素開始

第乙個元素大於第二個元素:那麼第乙個元素需要比第二個元素多1,但是不能確定第二個元素是多少

第乙個元素小於第二個元素:不用操作。

假設共有n個學生

那麼共有n-1對關係。

分別是0和1之間,1和2之間…n-2和n-1之間。

每對關係共有兩種可能,《關係和》關係。

先讓糖果數滿足所有《關係時,只會增加後迭代的元素不會破壞已經遍歷完元素之間的關係。(迭代順序從小到大)

再讓糖果滿足》順序時,只會增加後迭代到的元素不會破壞已經遍歷完元素之間的關係。(迭代順序從大到小)

通過思考極端情況進行考慮問題:

1.分數全部遞增。從第乙個往後看,不斷累加。

2.分數全部遞減。從最後乙個往前看,不斷累加。

任何的情況都可以分成無數個極端情況進行處理,剩下就是考慮交界處的處理方法了。

LeetCode 分發糖果

老師想給孩子們分發糖果,有 n 個孩子站成了一條直線,老師會根據每個孩子的表現,預先給他們評分。你需要按照以下要求,幫助老師給這些孩子分發糖果 每個孩子至少分配到 1 個糖果。相鄰的孩子中,評分高的孩子必須獲得更多的糖果。那麼這樣下來,老師至少需要準備多少顆糖果呢?示例 1 輸入 1,0,2 輸出 ...

LeetCode 分發糖果

老師想給孩子們分發糖果,有 n 個孩子站成了一條直線,老師會根據每個孩子的表現,預先給他們評分。你需要按照以下要求,幫助老師給這些孩子分發糖果 每個孩子至少分配到 1 個糖果。相鄰的孩子中,評分高的孩子必須獲得更多的糖果。那麼這樣下來,老師至少需要準備多少顆糖果呢?示例 1 輸入 1,0,2 輸出 ...

演算法 Candy 分發糖果

老師想給孩子們分發糖果,有 n 個孩子站成了一條直線,老師會根據每個孩子的表現,預先給他們評分。你需要按照以下要求,幫助老師給這些孩子分發糖果 每個孩子至少分配到 1 個糖果。相鄰的孩子中,評分高的孩子必須獲得更多的糖果。那麼這樣下來,老師至少需要準備多少顆糖果呢?示例 1 輸入 1 0,2 輸出 ...