1746. Maximum Subarray Sum After One Operation
Question
Code
class Solution:
def maxSumAfterOperation(self, nums: List[int]) -> int:
dp = [[0, 0] for _ in range(len(nums))]
dp[0][0] = nums[0]
dp[0][1] = nums[0] * nums[0]
max_sum = dp[0][1]
for i in range(1, len(nums)):
dp[i][0] = max(nums[i], nums[i] + dp[i - 1][0])
dp[i][1] = max(
nums[i] * nums[i],
nums[i] * nums[i] + dp[i - 1][0],
nums[i] + dp[i - 1][1]
)
max_sum = max(max_sum, dp[i][1])
return max_sum