分發糖果 (
目標:糖果陣列
約束條件:每個陣列元素大於等於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 輸出 ...