Keshawn_lu's Blog

Leetcode 1800. 最大升序子数组和

字数统计: 236阅读时长: 1 min
2022/10/07 Share

题目简介:

给你一个正整数组成的数组 nums ,返回 nums 中一个 升序 子数组的最大可能元素和。

子数组是数组中的一个连续数字序列。

已知子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,若对所有 il <= i < r),数组。注意,大小为 1 的子数组也视作 升序 子数组。

示例 1:

1
2
3
输入:nums = [10,20,30,5,10,50]
输出:65
解释:[5,10,50] 是元素和最大的升序子数组,最大元素和为 65 。

提示:

  • 1 <= nums.length <= 100
  • 1 <= nums[i] <= 100

思路:

遍历,依次记录所有的升序子数组之和,返回最大值即可。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Solution {
public:
int maxAscendingSum(vector<int>& nums) {

int res = nums[0];
int sum = nums[0];

for(int i = 1; i < nums.size(); i++){

if(nums[i] > nums[i - 1])
sum += nums[i];
else{

res = max(res, sum);
sum = nums[i];
}
}

res = max(res, sum);
return res;
}
};
CATALOG
  1. 1. 题目简介:
  2. 2. 思路:
  3. 3. 代码如下: