53.最大子序和

题目描述:

给定一个整数数组 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;
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入:...
    Y_d89b阅读 3,858评论 0 0
  • 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输...
    DAFFE阅读 1,514评论 0 0
  • 题目给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例:...
    HITZGD阅读 937评论 0 0
  • 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输...
    煮饭_阿姨阅读 1,105评论 0 0
  • 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 代码
    vbuer阅读 656评论 0 0