解题思路
1,res为结果值,tmp为临时结果值,初始值均为num[0]
2,从数组第2位遍历数组,升序将结果累加到tmp,并取res为Math.max(res,tmp),非升序tmp重新初始化为nums[i];
时间复杂度O(n),空间复杂度O(1).
运行结果
执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户
内存消耗:39.3 MB, 在所有 Java 提交中击败了41.53%的用户
代码
class Solution {
public int maxAscendingSum(int[] nums) {
int res = nums[0];
int tmp = nums[0];
for (int i = 1; i < nums.length; i++) {
if(nums[i]>nums[i-1]){
tmp+=nums[i];
res = Math.max(res,tmp);
}else {
tmp=nums[i];
}
}
return res;
}
}