题意
求数组中一段连续并且升序的数字序列和的最大值。
思路分析
数组中一定是存在多个连续升序数字序列的,只要将每个连续升序数字序列分别求和,然后取最大值即可。
分别设置两个变量,一个用来计算当前连续升序序列的和,另一个用来求取最大值。
注意当循环结束之后再求取一次MAX,否则会可能因为遗漏最后一个序列而导致答案错误。
代码
class Solution {
public:
int maxAscendingSum(vector<int>& nums) {
int ans = 0;
int temp = nums[0];
for(int i=1;i<nums.size();i++){
if(nums[i]>nums[i-1])
temp += nums[i];
else{
ans = max(temp,ans);
temp = nums[i];
}
}
ans = max(ans,temp);
return ans;
}
};