題目:
老師想給孩子們分發糖果,有 n 個孩子站成了一條直線,老師會根據每個孩子的表現,預先給他們評分。示例:你需要按照以下要求,幫助老師給這些孩子分發糖果:
那麼這樣下來,老師至少需要準備多少顆糖果呢?每個孩子至少分配到 1 個糖果。
相鄰的孩子中,評分高的孩子必須獲得更多的糖果。
輸入: [1,0,2]分析:輸出: 5
解釋: 你可以分別給這三個孩子分發 2、1、2 顆糖果。
輸入: [1,2,2]
輸出: 4
解釋: 你可以分別給這三個孩子分發 1、2、1 顆糖果。
第三個孩子只得到 1 顆糖果,這已滿足上述兩個條件。
首先,我們定義乙個陣列來存放每個小孩子的糖果,因為每個人必須有糖果,用arrays.fill來初始化陣列各個值為1,我們再去比較,這裡有個細節,就是要左右都比較,要遍歷2次,第一次遍歷先從左向右 若右邊的孩子評分比左邊高 則右邊的糖果數等於左邊的糖果數加一,第二次遍歷先從右向左 若左邊的孩子評分比右邊高且左邊的孩子糖果數小於等於右邊的 則左邊的糖果數等於右 邊的糖果數加一 同時求和
public
class
solution
}int sum = candies[ratings.length -1]
;for
(int i = ratings.length -
2; i >=
0; i--
) sum += candies[i];}
return sum;
}}
LeetCode 135 分發糖果
老師想給孩子們分發糖果,有 n 個孩子站成了一條直線,老師會根據每個孩子的表現,預先給他們評分。你需要按照以下要求,幫助老師給這些孩子分發糖果 每個孩子至少分配到 1 個糖果。相鄰的孩子中,評分高的孩子必須獲得更多的糖果。那麼這樣下來,老師至少需要準備多少顆糖果呢?示例 1 輸入 1,0,2 輸出 ...
leetcode135 分發糖果
一道很有意思的題目,難度級別為 困難。題目是這樣的的 老師想給孩子們分發糖果,有 n 個孩子站成了一條直線,老師會根據每個孩子的表現,預先給他們評分。你需要按照以下要求,幫助老師給這些孩子分發糖果 每個孩子至少分配到 1 個糖果。相鄰的孩子中,評分高的孩子必須獲得更多的糖果。那麼這樣下來,老師至少需...
leetcode135 分發糖果
老師想給孩子們分發糖果,有 n 個孩子站成了一條直線,老師會根據每個孩子的表現,預先給他們評分。你需要按照以下要求,幫助老師給這些孩子分發糖果 每個孩子至少分配到 1 個糖果。相鄰的孩子中,評分高的孩子必須獲得更多的糖果。那麼這樣下來,老師至少需要準備多少顆糖果呢?示例 1 輸入 1,0,2 輸出 ...