26 lines
414 B
Go
26 lines
414 B
Go
package q135
|
|
|
|
func candy(ratings []int) int {
|
|
n := len(ratings)
|
|
candies := make([]int, n)
|
|
|
|
for i := range n {
|
|
candies[i] = 1
|
|
if i > 0 && ratings[i-1] < ratings[i] {
|
|
candies[i] = candies[i-1] + 1
|
|
}
|
|
}
|
|
for i := n - 2; i >= 0; i-- {
|
|
if ratings[i+1] < ratings[i] {
|
|
candies[i] = max(candies[i], candies[i+1]+1)
|
|
}
|
|
}
|
|
|
|
sum := 0
|
|
for _, c := range candies {
|
|
sum += c
|
|
}
|
|
return sum
|
|
}
|
|
|
|
var _ = candy
|