← All problems

1800. Maximum Ascending Subarray Sum

EasyOpen on LeetCodeProblem statement

Problem Statement

1800. Maximum Ascending Subarray Sum

Easy


Given an array of positive integers nums, return the maximum possible sum of an ascending subarray in nums.

A subarray is defined as a contiguous sequence of numbers in an array.

A subarray [numsl, numsl+1, ..., numsr-1, numsr] is ascending if for all i where l <= i < r, numsi < numsi+1. Note that a subarray of size 1 is ascending.

 

Example 1:

Input: nums = [10,20,30,5,10,50]
Output: 65
Explanation: [5,10,50] is the ascending subarray with the maximum sum of 65.

Example 2:

Input: nums = [10,20,30,40,50]
Output: 150
Explanation: [10,20,30,40,50] is the ascending subarray with the maximum sum of 150.

Example 3:

Input: nums = [12,17,15,13,10,11,12]
Output: 33
Explanation: [10,11,12] is the ascending subarray with the maximum sum of 33.

 

Constraints:

Java

Source file
class Solution {
    public int maxAscendingSum(int[] nums) {
        int n = nums.length, maxSubArraySum = nums[0], currSubArraySum = nums[0];
        for (int i = 1; i < n; i++) {
            if (nums[i - 1] < nums[i])
                currSubArraySum += nums[i];
            else {
                maxSubArraySum = Math.max(maxSubArraySum, currSubArraySum);
                currSubArraySum = nums[i];
            }
        }
        return Math.max(maxSubArraySum, currSubArraySum);
    }
}