53. 最大子数组和

2023-07-08  本文已影响0人  红树_

参考53. 最大子数组和

题目

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

输入:nums = [-2,1,-3,4,-1,2,1,-5,4]
输出:6
解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。

解题思路

还有一种方法是线段树分治比较复杂,但是可以节约空间,以及应对动态变化的数据时能更快的得到结果.

动态规划/贪心

class Solution {
    public int maxSubArray(int[] nums) {
        int pre = 0, maxAns = nums[0];
        for (int x : nums) {
            pre = Math.max(pre + x, x);
            maxAns = Math.max(maxAns, pre);
        }
        return maxAns;
    }
}

复杂度分析

上一篇 下一篇

猜你喜欢

热点阅读