Skip to content

Commit db01bd5

Browse files
authored
Create Readme.md
1 parent 90631ae commit db01bd5

File tree

1 file changed

+9
-0
lines changed
  • Dynamic_Programming/2036.Maximum-Alternating-Subarray-Sum

1 file changed

+9
-0
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)