leet-code/src/main/java/leetcode/editor/cn/MaximumAscendingSubarraySum.java

80 lines
1.9 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//给你一个正整数组成的数组 nums ,返回 nums 中一个 升序 子数组的最大可能元素和。
//
// 子数组是数组中的一个连续数字序列。
//
// 已知子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,若对所有 il <= i < rnumsi < numsi
//+1 都成立,则称这一子数组为 升序 子数组。注意,大小为 1 的子数组也视作 升序 子数组。
//
//
//
// 示例 1
//
//
//输入nums = [10,20,30,5,10,50]
//输出65
//解释:[5,10,50] 是元素和最大的升序子数组,最大元素和为 65 。
//
//
// 示例 2
//
//
//输入nums = [10,20,30,40,50]
//输出150
//解释:[10,20,30,40,50] 是元素和最大的升序子数组,最大元素和为 150 。
//
//
// 示例 3
//
//
//输入nums = [12,17,15,13,10,11,12]
//输出33
//解释:[10,11,12] 是元素和最大的升序子数组,最大元素和为 33 。
//
//
// 示例 4
//
//
//输入nums = [100,10,1]
//输出100
//
//
//
//
// 提示:
//
//
// 1 <= nums.length <= 100
// 1 <= nums[i] <= 100
//
// Related Topics 双指针
// 👍 15 👎 0
package leetcode.editor.cn;
//1800:最大升序子数组和
public class MaximumAscendingSubarraySum{
public static void main(String[] args) {
//测试代码
Solution solution = new MaximumAscendingSubarraySum().new Solution();
}
//力扣代码
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
public int maxAscendingSum(int[] nums) {
int max = 0;
int size = nums.length;
int sum = nums[0];
for (int i = 1; i < size; i++) {
if (nums[i] > nums[i - 1]) {
sum += nums[i];
} else {
max = Math.max(sum, max);
sum = nums[i];
}
}
max = Math.max(sum, max);
return max;
}
}
//leetcode submit region end(Prohibit modification and deletion)
}