We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 90631ae commit db01bd5Copy full SHA for db01bd5
Dynamic_Programming/2036.Maximum-Alternating-Subarray-Sum/Readme.md
@@ -0,0 +1,9 @@
1
+### 2036.Maximum-Alternating-Subarray-Sum
2
+
3
+我们定义两个状态,curSum0[i]表示以元素i结尾、并且元素i本身未被符号翻转的情况下,能够得到的max subarray sum. 同理,curSum1[i]表示以元素i结尾、并且元素i本身已经被符号翻转的情况下,能够得到的max subarray sum.
4
5
+对于curSum0[i],它两种可能。要么只有仅包含单个元素+nums[i]。要么需要和前面的subarray连起来使用,显然能与+nums[i]连在一起的,必然是curSum1[i-1]. 所以```curSum0[i] = max(nums[i], curSum1[i-1]+nums[i]```.
6
7
+对于curSum1[i],它其实只有一种可能,即需要和前面的subarray连起来使用。这是因为题目不允许subarray的开头是一个符号反转的元素。所以必然-nums[i]要与curSum0[i-1]连在一起. 所以```curSum1[i] = curSum0[i-1]-nums[i]```.
8
9
+此外特别注意,对于边界条件,curSum1[-1]可以是0,但是curSum0[-1]必须设置为无穷小。这是因为nums[0]只能作为一个subarray的开头,它不能被符号翻转,所以```curSum1[0] = curSum0[-1]-nums[i]```没有意义。
0 commit comments