分發糖果
解題思路:貪心演算法、兩次遍歷
classsolution
int cands = new
int[len];
for(int i=0;i)
for(int i=0;i)
}for(int i=len-1;i>0;i--)
}int sum = 0;
for(int i=0;i)
return
sum;
}}
第二種方法:
解題思路:把所有的情形的分界點分成三類,至於為什麼這樣子分類,是根據該題的具體情形考慮才這樣子分類的。
(下--上)作為分界點
(下--平)作為分界點
(上--平)作為分界點
以上面三種分界點分成很多部分來分別計算每一部分的糖果數。
classsolution
int up=0;
int down=0;
int old_scope = 0;
int new_scope = 0;
int candys = 0;
for(int i=1;i)
if(new_scope==1)
if(new_scope==-1)
if(new_scope==0)
old_scope =new_scope;
}candys+=up*(1+up)/2+down*(1+down)/2+math.max(up,down)+1;
return
candys;
}}
LeetCode 135 分發糖果
老師想給孩子們分發糖果,有 n 個孩子站成了一條直線,老師會根據每個孩子的表現,預先給他們評分。你需要按照以下要求,幫助老師給這些孩子分發糖果 每個孩子至少分配到 1 個糖果。相鄰的孩子中,評分高的孩子必須獲得更多的糖果。那麼這樣下來,老師至少需要準備多少顆糖果呢?示例 1 輸入 1,0,2 輸出 ...
leetcode135 分發糖果
一道很有意思的題目,難度級別為 困難。題目是這樣的的 老師想給孩子們分發糖果,有 n 個孩子站成了一條直線,老師會根據每個孩子的表現,預先給他們評分。你需要按照以下要求,幫助老師給這些孩子分發糖果 每個孩子至少分配到 1 個糖果。相鄰的孩子中,評分高的孩子必須獲得更多的糖果。那麼這樣下來,老師至少需...
leetcode135 分發糖果
老師想給孩子們分發糖果,有 n 個孩子站成了一條直線,老師會根據每個孩子的表現,預先給他們評分。你需要按照以下要求,幫助老師給這些孩子分發糖果 每個孩子至少分配到 1 個糖果。相鄰的孩子中,評分高的孩子必須獲得更多的糖果。那麼這樣下來,老師至少需要準備多少顆糖果呢?示例 1 輸入 1,0,2 輸出 ...