老師想給孩子們分發糖果,有 n 個孩子站成了一條直線,老師會根據每個孩子的表現,預先給他們評分。
那麼這樣下來,老師至少需要準備多少顆糖果呢?
示例:
例 1:我的思路:新建乙個陣列,將所有元素排序,在原陣列中從小到大分發糖果。輸入: [1,0,2]
輸出: 5
解釋: 你可以分別給這三個孩子分發 2、1、2 顆糖果。
例 2:
輸入: [1,2,2]
輸出: 4
解釋: 你可以分別給這三個孩子分發 1、2、1 顆糖果。 第三個孩子只得到 1 顆糖果,這已滿足上述兩個條件。
**:
class
solution
intcandy
(vector<
int>
& ratings));
sort
( data.
begin()
, data.
end(
), cmp)
;int res =0;
vector<
int>
record
( ratings.
size()
,-1)
;for
(int i =
0; i < data.
size()
; i++
)else
if( pos == data.
size()
-1)else
res +
= record[pos];}
return res;}}
;
雖然ac了,但是寫的又亂又長,而且執行時間不理想。
一定有優化的方法。
LeetCode刷題 135分發糖果
問題 老師想給孩子們分發糖果,有 n 個孩子站成了一條直線,老師會根據每個孩子的表現,預先給他們評分。你需要按照以下要求,幫助老師給這些孩子分發糖果 每個孩子至少分配到 1 個糖果。相鄰的孩子中,評分高的孩子必須獲得更多的糖果。那麼這樣下來,老師至少需要準備多少顆糖果呢?示例1 輸入 1,0,2 輸...
Leetcode刷題筆記 135 分發糖果
題目 老師想給孩子們分發糖果,有 n 個孩子站成了一條直線,老師會根據每個孩子的表現,預先給他們評分。你需要按照以下要求,幫助老師給這些孩子分發糖果 每個孩子至少分配到 1 個糖果。相鄰的孩子中,評分高的孩子必須獲得更多的糖果。那麼這樣下來,老師至少需要準備多少顆糖果呢?示例 1 輸入 1,0,2 ...
leetcode每日一題 135 分發糖果
題目 老師想給孩子們分發糖果,有 n 個孩子站成了一條直線,老師會根據每個孩子的表現,預先給他們評分。你需要按照以下要求,幫助老師給這些孩子分發糖果 每個孩子至少分配到 1 個糖果。評分更高的孩子必須比他兩側的鄰位孩子獲得更多的糖果。那麼這樣下來,老師至少需要準備多少顆糖果呢?思路 將每個數當看作乙...