dengxinyi 6 jaren geleden
bovenliggende
commit
43433899ca
3 gewijzigde bestanden met toevoegingen van 36 en 5 verwijderingen
  1. 1 1
      hard/123.go
  2. 25 4
      hard/174.go
  3. 10 0
      hard/188.go

+ 1 - 1
hard/123.go

@@ -1,6 +1,6 @@
 package main
 
-func maxProfit(prices []int) (profit int) {
+func maxProfitFor2(prices []int) (profit int) {
 	if len(prices) <= 1 {
 		return 0
 	}

+ 25 - 4
hard/174.go

@@ -1,9 +1,30 @@
 package main
 
 func calculateMinimumHP(dungeon [][]int) int {
-	return 0
+	m, n := len(dungeon), len(dungeon[0]) // Reverse DP
+	dp := make([][]int, m)
+	for i := range dp {
+		dp[i] = make([]int, n)
+	}
+	dp[m-1][n-1] = maxInt(1, 1-dungeon[m-1][n-1])
+	for i := m - 2; 0 <= i; i-- {
+		dp[i][n-1] = maxInt(1, dp[i+1][n-1]-dungeon[i][n-1])
+	}
+	for j := n - 2; 0 <= j; j-- {
+		dp[m-1][j] = maxInt(1, dp[m-1][j+1]-dungeon[m-1][j])
+	}
+	for i := m - 2; 0 <= i; i-- {
+		for j := n - 2; 0 <= j; j-- {
+			need := minInt(dp[i+1][j], dp[i][j+1]) - dungeon[i][j]
+			dp[i][j] = maxInt(1, need)
+		}
+	}
+	return dp[0][0]
 }
 
-func main() {
-
-}
+// func main() {
+// 	println(calculateMinimumHP([][]int{
+// 		{1, -3, 3},
+// 		{0, -2, 0},
+// 		{-3, -3, -3}}), 3)
+// }

+ 10 - 0
hard/188.go

@@ -0,0 +1,10 @@
+package main
+
+func maxProfit(k int, prices []int) int {
+
+	return 0
+}
+
+func main() {
+
+}