Skip to content

Commit dd8b22e

Browse files
authored
Create 1911-maximum-alternating-subsequence-sum.kt
1 parent c0606c1 commit dd8b22e

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
class Solution {
2+
fun maxAlternatingSum(nums: IntArray): Long {
3+
val dp = Array (2) { LongArray (nums.size) { -1L } }
4+
5+
fun dfs(i: Int, even: Int): Long {
6+
if (i == nums.size)
7+
return 0
8+
if (dp[even][i] != -1L)
9+
return dp[even][i]
10+
11+
var sum = if (even == 1) nums[i] else -1 * nums[i]
12+
dp[even][i] = maxOf(
13+
sum + dfs(i + 1, if (even == 1) 0 else 1),
14+
dfs(i + 1, even)
15+
)
16+
17+
return dp[even][i]
18+
}
19+
20+
return dfs(0, 1)
21+
}
22+
}

0 commit comments

Comments
 (0)