Skip to content

Commit e566b02

Browse files
authored
Update 0312-burst-balloons.kt
1 parent 304bb9d commit e566b02

File tree

1 file changed

+15
-14
lines changed

1 file changed

+15
-14
lines changed

kotlin/0312-burst-balloons.kt

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
11
class Solution {
2-
fun maxCoins(nums: IntArray): Int {
3-
val newNums = intArrayOf(1) + nums + intArrayOf(1)
4-
val cache = Array(newNums.size){ IntArray(newNums.size) }
2+
fun maxCoins(_nums: IntArray): Int {
3+
val nums = intArrayOf(1) + _nums + intArrayOf(1)
4+
val n = nums.size
5+
val dp = Array (n) { IntArray (n) { -1 } }
56

6-
fun dfs(left: Int, right: Int): Int{
7-
if(left > right) return 0
8-
if(cache[left][right] != 0) return cache[left][right]
9-
for(i in left..right){
10-
var coins = newNums[left-1] * newNums[i] * newNums[right+1]
11-
coins = coins + dfs(left, i-1) + dfs(i+1, right)
12-
cache[left][right] = maxOf(cache[left][right], coins)
7+
fun dfs(l: Int, r: Int): Int {
8+
if (l > r) return 0
9+
if (dp[l][r] != -1) return dp[l][r]
10+
11+
for (i in l..r) {
12+
var coins = nums[l - 1] * nums[i] * nums[r + 1]
13+
coins += dfs(l, i - 1) + dfs(i + 1, r)
14+
dp[l][r] = maxOf(dp[l][r], coins)
1315
}
14-
return cache[left][right]
16+
17+
return dp[l][r]
1518
}
1619

17-
return dfs(1, newNums.size-2)
18-
20+
return dfs(1, n - 2)
1921
}
20-
2122
}

0 commit comments

Comments
 (0)