子数组的最大累加问题

子数组的最大累加和问题

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

动态规划问题,明显的一维表 这边直接改传进来的数组即可,需要记录比较最大值
整体推到过程 i 位置的最大子数组和 值与 i-1 位置

import java.util.*;


public class Solution {
    /**
     * max sum of the subarray
     * @param arr int整型一维数组 the array
     * @return int整型
     */
    public int maxsumofSubarray (int[] arr) {
        // write code here
        if(arr==null||arr.length<1){
            return 0;
        }
        int max=arr[0];

        for(int i=1;i<arr.length;i++){
            //子串累加后大于 0 表示可以累加 否则 置0 中断累加    
            if((arr[i]+arr[i-1])>0){
                arr[i]=arr[i]+arr[i-1];
                max=Math.max(arr[i],max);
            }else{
                //考虑到可能数组相加无正数的情况 
                max=Math.max(arr[i],max);
                arr[i]=0;
            }

        }

        return max;
    }
}
全部评论

相关推荐

09-19 12:15
门头沟学院 Java
迷茫的大四🐶:这下是真的打牌了,我可以用感谢信和佬一起打牌吗
点赞 评论 收藏
分享
26应届求职ing:你这是报了豆音四哥的班?双非本硕拿这两个项目写简历里投100多家嵌软也没什么面试,感觉项目简单了,很多人用
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务