dengxinyi 6 tahun lalu
induk
melakukan
a166649ca2
1 mengubah file dengan 25 tambahan dan 5 penghapusan
  1. 25 5
      hard/135.go

+ 25 - 5
hard/135.go

@@ -1,9 +1,29 @@
 package main
 
-func candy(ratings []int) int {
-	return 0
+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() {
-
-}
+// func main() {
+// 	println(candy([]int{1, 0, 2}), 5)
+// 	println(candy([]int{1, 2, 2}), 4)
+// }