题解 | #分糖果问题#
分糖果问题
http://www.nowcoder.com/practice/76039109dd0b47e994c08d8319faa352
/**
* pick candy
* @param arr int整型一维数组 the array
* @param arrLen int arr数组长度
* @return int整型
*
* C语言声明定义全局变量请加上static,防止重复定义
*
* C语言声明定义全局变量请加上static,防止重复定义
*/
int candy(int* arr, int arrLen ) {
int count=0;
int b[arrLen];
for(int i=0;i<arrLen;i++){
b[i]=1;
}
for(int i=1;i<arrLen;i++){
if(arr[i-1]<arr[i]){
b[i]=b[i-1]+1;
}
}
for(int i=arrLen-1;i>0;i--){
if(arr[i-1]>arr[i]&&b[i-1]<=b[i]){
b[i-1]=b[i]+1;
}
}
for(int i=0;i<arrLen;i++){
count+=b[i];
}
return count;
}