File tree Expand file tree Collapse file tree 1 file changed +15
-14
lines changed Expand file tree Collapse file tree 1 file changed +15
-14
lines changed Original file line number Diff line number Diff line change 11class 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}
You can’t perform that action at this time.
0 commit comments