牛客题霸 [分糖果问题] C++题解/答案
生活随笔
收集整理的這篇文章主要介紹了
牛客题霸 [分糖果问题] C++题解/答案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
牛客題霸 [分糖果問題] C++題解/答案
題目描述
一群孩子做游戲,現在請你根據游戲得分來發糖果,要求如下:
給定一個數組arr代表得分數組,請返回最少需要多少糖果。
[要求]
時間復雜度為On, 空間復雜度為O1
題解:
正著來一遍,倒著來一遍
根據大小關系遞歸賦值
代碼:
class Solution { public:/*** pick candy* @param arr int整型vector the array* @return int整型*/int candy(vector<int>& arr) {// write code hereint len=arr.size();int sum=0;vector<int>a(len,1);for(int i=1;i<len;i++){if(arr[i]>arr[i-1])a[i]=a[i-1]+1;}for(int i=len-2;i>=0;i--){if(arr[i]>arr[i+1])a[i]=max(a[i],a[i+1]+1);}for(int i=0;i<len;i++)sum+=a[i];return sum;} };總結
以上是生活随笔為你收集整理的牛客题霸 [分糖果问题] C++题解/答案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 戴尔巨亏,惠普又裁员9000人,曾经的P
- 下一篇: 华硕主板如何升级BIOS华硕主板 升级