题解 | #最大子数组和#

子数组的最大累加和问题

http://www.nowcoder.com/practice/554aa508dd5d4fefbf0f86e5fe953abd

package org.example.test;

/**
 * 子数组最大求和公式:
 * 如果以数组下标结尾的前面最大子数组和+arr[i+1]>=arr[i+1],则i+1的最大子数组和为arr[i]+前面i结尾的子数组和
 * 如果小于,则i+1的最大子数组和为arr[i+1];
 */
public class MaxSumTest {
    public static void main(String[] args) {
        int[] nums = {1, -2, 3, 5, -2, 6, -1};
        System.out.println(maxsumofSubarray(nums));
    }

    public static int maxsumofSubarray(int[] arr) {
        int max = arr[0];
        int now = 0;
        for (int value : arr) {
            now = Math.max(value + now, value);
            max = Math.max(now, max);
        }
        return max;
    }
}
算法 文章被收录于专栏

数据结构和算法

全部评论

相关推荐

01-15 13:52
已编辑
河南大学 Java
六年要多久:标准头像,不吃香菜😂
点赞 评论 收藏
分享
神哥不得了:首先我就是在成都,成都的互联网格外的卷,如果是凭现在的简历的话很难找到大厂,建议再添加一个高质量的项目上去,另外专业技能的话最好是超过每一条的一半
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务