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 innums
.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 alli
wherel <= i < r, numsi < numsi + 1
. Note that a subarray of size1
is ascending.Input: nums = [10,20,30,5,10,50] Output: 65 Explanation: [5,10,50] is the ascending subarray with the maximum sum of 65.
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.
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.
Input: nums = [100,10,1] Output: 100
1 <= nums.length <= 100
1 <= nums[i] <= 100
- 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; }
- Java