【DP】设置ans = nums[0]来记录最大值,sum = nums[0]用来记录当前连续序列的和,从i = 1开始枚举nums,如果当前nums[i] > nums[i - 1],那么sum += nums[i],并且更新ans,否则sum就是当前nums[i]。
class Solution {
// 10:43 5
public int maxAscendingSum(int[] nums) {
int ans = nums[0], sum = nums[0];
int pre = nums[0];
for (int i = 1; i < nums.length; i++) {
if (nums[i] > pre) {
sum += nums[i];
} else {
sum = nums[i];
}
pre = nums[i];
ans = Math.max(ans, sum);
}
return ans;
}
}
class Solution {
// 10:54
public int maxAscendingSum(int[] nums) {
int ans = nums[0], sum = nums[0];
for (int i = 1; i < nums.length; i++) {
if (nums[i] > nums[i - 1]) sum += nums[i];
else sum = nums[i];
ans = Math.max(ans, sum);
}
return ans;
}
}
class Solution {
public:
// 10:56
int maxAscendingSum(vector<int>& nums) {
int ans = nums[0], sum = nums[0];
for (int i = 1; i < nums.size(); i++) {
if (nums[i] > nums[i - 1]) sum += nums[i];
else sum = nums[i];
ans = max(ans, sum);
}
return ans;
}
};