连续子数组的最大和
来源:互联网 发布:淘宝首页全屏大图 编辑:程序博客网 时间:2024/05/10 10:09
题目
输入一个数组,数组里有正数也有负数。数组中一个或者连续的多个整数组成一个子数组,求出所有的子数组中和最大的值
解题
动态规划
定义:
初始值:
public class Solution { public int FindGreatestSumOfSubArray(int[] array) { if(array == null || array.length == 0) return 0; int len = array.length; int[] dp = new int[len];// dp[i] 表示以第i个数结尾的子数组的最大和 dp[0] = array[0]; int max = array[0]; for(int i=1;i<len;i++){ int subMax = dp[i-1] + array[i]; if(subMax > array[i]){ dp[i] = subMax; }else{ dp[i] = array[i]; } max = Math.max(max,dp[i]); } return max; }}
去除定义的数组
public class Solution { public int FindGreatestSumOfSubArray(int[] array) { if(array == null || array.length == 0) return 0; int len = array.length; int subMax = array[0]; int max = array[0]; for(int i=1;i<len;i++){ subMax = Math.max(subMax + array[i],array[i]);// 以 i元素结束的子数组的最大值 max = Math.max(max,subMax); // 全局最大值 } return max; }}
当然这个也可以直接暴力求解,三层循环
0 0
- 数组连续子数组的和最大
- 数组连续子数组的最大和
- 连续子数组的最大和
- 连续子数组的最大和
- 连续子数组的最大和
- 求连续子数组的最大和
- 连续子数组的最大和
- 求连续子数组的最大和
- 求连续子数组的最大和
- 连续子数组的最大和
- 连续子数组的最大和
- (8)连续子数组的最大和
- 求连续子数组的最大和
- 求连续子数组的最大和
- 连续子数组的最大和
- 求连续子数组的最大和
- 连续子数组的最大和
- 连续子数组的最大和
- 算法测试平台搭建常用代码备份
- 传输块(Transport Block)大小的计算
- wordpress搭建
- 个人主页
- TCP三次握手/四次挥手详解
- 连续子数组的最大和
- iOS 基础篇14- KVO的使用
- 2016 JAVA与Android面试题整理
- “fatal error C1083 ”无法打开包括文件
- OSG for Android新手教程系列(二)——项目配置
- STL常用总结
- 编译运行在Tomcat时报错org.apache.catalina.LifecycleException: Failed to start component
- C++中的显式类型转换
- JavaScript对象的扁平化与反扁平化