

要解决这个问题,我们可以使用滑动窗口(或简单的遍历)来查找所有严格递增的连续子数组,并计算它们的元素和,返回其中的最大值。
✅ 解题思路:
-
初始化两个变量:
-
max_sum记录当前发现的最大子数组和。 -
current_sum记录当前递增子数组的和。
-
-
遍历数组:
-
如果当前元素大于前一个元素(说明递增),就加到
current_sum。 -
否则就:
-
更新
max_sum。 -
重置
current_sum为当前元素。
-
-
-
最后再更新一次
max_sum,以防最优子数组在末尾。
🧠 示例代码(Python):
def maxIncreasingSubarraySum(nums):
max_sum = current_sum = nums[0]
for i in range(1, len(nums)):
if nums[i] > nums[i - 1]:
current_sum += nums[i]
else:
max_sum = max(max_sum, current_sum)
current_sum = nums[i]
return max(max_sum, current_sum)
📌 示例:
nums = [10, 20, 30, 5, 10, 50]
print(maxIncreasingSubarraySum(nums)) # 输出: 65 (因为子数组 [5,10,50] 是最大递增和)
409

被折叠的 条评论
为什么被折叠?



