// 分发糖果
func distributeCandyII(nums []int) int {
n := len(nums)
candy := make([]int, n)
// 每个孩子至少1个糖果
for i, _ := range candy {
candy[i] = 1
}
// 从左向右,右孩子大时,糖果数+1
for i := 1; i < len(nums); i++ {
if nums[i] > nums[i-1] {
candy[i] = candy[i-1]+1
}
}
// 再从右向左,左孩子大时,取已分配糖果数和右孩子糖果数+1的最大值
for i := len(nums)-2; i >= 0; i-- {
if nums[i] > nums[i+1] {
candy[i] = max(candy[i], candy[i+1]+1)
}
}
var result int
for _,v := range candy {
result += v
}
return result
}