
输入
[1,1,2]
输出
4
说明
最优分配方案为1,1,2
示例2
输入
[1,1,1]
输出
3
说明
最优分配方案是1,1,1
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* pick candy
* @param arr int整型vector the array
* @return int整型
*/
int candy(vector<int>& arr) {
// write code here
int n=arr.size();
vector<int> num(n,1);
for(int i=1;i<n;i++)
{
if(arr[i]>arr[i-1]) num[i]=num[i-1]+1;
}
for(int i=n-2;i>=0;i--)
{
if(arr[i]>arr[i+1]&&num[i]<=num[i+1])
num[i]=num[i+1]+1;
}
int sum=0;
for(int i=0;i<n;i++)
{
sum+=num[i];
}
return sum;
}
};