| 1234567891011121314151617181920212223242526272829 | 
							- package main
 
- func candy(ratings []int) (sum int) {
 
- 	n := len(ratings)
 
- 	if n <= 1 {
 
- 		return n
 
- 	}
 
- 	candies := make([]int, n)
 
- 	for i := range candies {
 
- 		candies[i] = 1
 
- 	}
 
- 	for i := 1; i < n; i++ { // Forward increasing
 
- 		if ratings[i-1] < ratings[i] {
 
- 			candies[i] = candies[i-1] + 1
 
- 		}
 
- 	}
 
- 	for i := n - 1; 0 < i; i-- { // Backward increasing
 
- 		if ratings[i] < ratings[i-1] && candies[i-1] < candies[i]+1 {
 
- 			candies[i-1] = candies[i] + 1
 
- 		}
 
- 		sum += candies[i]
 
- 	}
 
- 	return sum + candies[0]
 
- }
 
- // func main() {
 
- // 	println(candy([]int{1, 0, 2}), 5)
 
- // 	println(candy([]int{1, 2, 2}), 4)
 
- // }
 
 
  |