lc-go/solutions/1/q135/solution.go
2025-12-23 18:39:11 +09:00

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