- 題目:
有N個孩子站在一排。 每個孩子被分配一個評分值。 你給這些孩子的糖果滿足以下要求: 每個孩子必須有至少一個糖果。 評分較高的孩子比他們的鄰居獲得更多的糖果。 你必須給的最低糖果是什麼?
- 題目分析:這個題目其實就是簡單的遍歷問題。一個打亂的陣列,每個數字都有一個特定的屬性值,相鄰兩個數字大的數字比小的數字的屬性值大。我們可以一次遍歷 搞定,不過有點繁瑣;這裡我先從左邊一次遍歷處理大的值,然後右邊遍歷一次處理大的值(類似處理小的值),這樣比較清晰。
- 程式碼:
class Solution { public: int candy(vector<int> &ratings) { int len = ratings.size(); if (len == 1) return 1; //從左邊遍歷 升序 找到大的就加1 vector<int> res(len, 1); int sum = 0; for (int i=0; i<len-1; i++){ if (ratings[i+1] > ratings[i]) res[i+1] = res[i]+1; } //在從右邊遍歷 升序 找到大的 加1 //兩次遍歷類似於一次遍歷兩次判斷。這樣比較清晰 for (int j=len-1; j>0; j--){ if (ratings[j-1] > ratings[j] && res[j-1]<=res[j]) res[j-1] = res[j]+1; } for (int i=0; i<len; i++){ sum += res[i]; } return sum; } };
(動態規劃)最小分糖果問題
相關文章
- 整數劃分問題(動態規劃)動態規劃
- 最小總和問題(動態規劃演算法)動態規劃演算法
- 動態規劃6:臺階問題和矩陣最小路徑問題動態規劃矩陣
- 動態規劃之子序列問題動態規劃
- 揹包問題----動態規劃動態規劃
- 【動態規劃】揹包問題動態規劃
- 動態規劃分類題目總結動態規劃
- 動態規劃 01揹包問題動態規劃
- 找零問題與動態規劃動態規劃
- 【動態規劃】01揹包問題動態規劃
- 動態規劃-01揹包問題動態規劃
- 動態規劃,股票問題留坑動態規劃
- 動態規劃篇——揹包問題動態規劃
- 醜數問題——動態規劃、Java動態規劃Java
- 動態規劃--01揹包問題動態規劃
- 動態規劃9:變態跳臺問題動態規劃
- 動態規劃之數的劃分動態規劃
- 【動態規劃】01揹包問題【續】動態規劃
- 動態規劃5:找零錢問題動態規劃
- 好題——動態規劃動態規劃
- 動態規劃專題動態規劃
- 動態規劃題單動態規劃
- 動態規劃之股票問題123動態規劃
- 0-1揹包問題(動態規劃)動態規劃
- 動態規劃,這幾個問題最常見!動態規劃
- 動態規劃-最少硬幣組合問題動態規劃
- 動態規劃練習題動態規劃
- 動態規劃解題方法動態規劃
- 動態規劃做題思路動態規劃
- 從“股票問題”談動態規劃問題的解決思路動態規劃
- 【動態規劃(一)】動態規劃基礎動態規劃
- 矩陣連乘問題 Python 動態規劃矩陣Python動態規劃
- 動態規劃之0,1揹包問題動態規劃
- 動態規劃系列之六01揹包問題動態規劃
- 動態規劃求解最長上升子序列問題動態規劃
- 最長公共子序列問題—動態規劃sdut動態規劃
- 迴文串問題(動態規劃DP C++)動態規劃C++
- 磁帶最大利用率問題——動態規劃動態規劃