189 8069 5689

最大子数组和(java)-创新互联

53. 大子数组和 - 力扣(Leetcode)

站在用户的角度思考问题,与客户深入沟通,找到吉木乃网站设计与吉木乃网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、做网站、企业官网、英文网站、手机端网站、网站推广、域名申请网站空间、企业邮箱。业务覆盖吉木乃地区。

此题是典型的动态规划算法

class Solution {
    public int maxSubArray(int[] nums) {
        //最终输出的大值
        int maxSum = nums[0];
    for (int i = 1; i< nums.length; ++i) {
        //改变后一个nums值,此值为前面大值+此值的和,循环过来时,nums[i-1]的值就是前面所有最优值的和,每次都与0比较,说明如果前面的和计算出来有负值,就抛弃前面的数,从当前位置开始计算。
        nums[i] = Math.max(nums[i - 1], 0) + nums[i];
        //再将当前最优的和与上一次的maxsum比较,取大
        maxSum = Math.max(maxSum, nums[i]);
    }
        return maxSum;
    }
}

最重要的一行

nums[i] = Math.max(nums[i - 1], 0) + nums[i];

意为,将前面的值一个一个加起来,如果出现相加完后是负值的情况,那在下一次循环到这里时直接舍弃,以0为大值加上nums[i]作为和,然后继续计算。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前题目:最大子数组和(java)-创新互联
URL网址:http://cdxtjz.cn/article/dpgghe.html

其他资讯