美文网首页
53.最大子序和

53.最大子序和

作者: 夜空中最亮的星_6c64 | 来源:发表于2019-01-05 16:23 被阅读0次

题目描述:

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

示例:

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

解答:

public static int maxSubArray(int[] nums) {
        //  中间结果初始化 0
        int midRs = 0;
        //  结果初始化 nums[0]
        int rs = nums[0];
        for (int i = 0; i < nums.length; i++) {
            // 每次比较加这一个数的大小,小则取这一个值
            midRs = Math.max(midRs + nums[i], nums[i]);
            // 如果midRs出现比上次值小时,由rs保存上次的值
            rs = Math.max(rs, midRs);
        }
        return rs;
    }

相关文章

网友评论

      本文标题:53.最大子序和

      本文链接:https://www.haomeiwen.com/subject/tpxdrqtx.html