135 分發糖果

2022-10-11 15:51:16 字數 845 閱讀 1218

135. 分發糖果

n個孩子站成一排。給你乙個整數陣列ratings表示每個孩子的評分。

你需要按照以下要求,給這些孩子分發糖果:

請你給每個孩子分發糖果,計算並返回需要準備的最少糖果數目

示例 1:

輸入:ratings = [1,0,2]

輸出:5

解釋:你可以分別給第乙個、第二個、第三個孩子分發 2、1、2 顆糖果。

示例 2:

輸入:ratings = [1,2,2]

輸出:4

解釋:你可以分別給第乙個、第二個、第三個孩子分發 1、2、1 顆糖果。

第三個孩子只得到 1 顆糖果,這滿足題面中的兩個條件。

思路:​ 首先,當然可以暴力計算兩次,一次先計算從左到右,如果i比i-1小就先當做1.然後再從右到左計算一次即可

​ 但是還是使用o(n)一次遍歷的方法。

​ 這裡推薦去**官方的解釋。

​ 首先,如果i大於i-1的話,那麼我們只需要比上一次多給乙個即可。如果等於,那麼就只給乙個。

如果i小於i-1的情況呢?我們要怎麼計算呢?那麼我們只需要計算出遞減序列的數量,給那個人送1個糖果,然後給其他所有遞減序列中的人多分配1個糖果即可。如果遞減序列和遞增序列的長度相同時,需要把遞增的最後乙個放入遞減序列中,否則會破壞規則。

class solution else

}return ans;

}};

135 分發糖果

題目.high 其實就是求每個數左邊或者右邊連續小於自己的個數。感覺不是很難啊。package main import fmt func candy ratings int int candies make int len ratings for i 0 i len ratings i lesscn...

135 分發糖果

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

135 分發糖果

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