Skip to content

Latest commit

 

History

History
80 lines (70 loc) · 1.79 KB

1800. Maximum Ascending Subarray Sum.md

File metadata and controls

80 lines (70 loc) · 1.79 KB

the first one in Weekly Contest 233.


Difficulty : Easy

Related Topics : Two Pointers


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.

Example 4:

Input: nums = [100,10,1]
Output: 100

Constraints:

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

Solution

  • mine
    • Java
      • Runtime: 0 ms, faster than 100.00%, Memory Usage: 36.4 MB, less than 100.00% of Java online submissions
        // O(N)time
        // O(1)space
        public int maxAscendingSum(int[] nums) {
            int res = nums[0];
            int t = nums[0];
            for(int i = 1; i  < nums.length; i++){
                if(nums[i] > nums[i - 1]){
                    t += nums[i];
                }else{
                    t = nums[i];
                }
                res = Math.max(res, t);
            }
            return res;
        }