博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
动态规划 最大连续数组和
阅读量:5291 次
发布时间:2019-06-14

本文共 775 字,大约阅读时间需要 2 分钟。

Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.

Example:

Input: [-2,1,-3,4,-1,2,1,-5,4],Output: 6Explanation: [4,-1,2,1] has the largest sum = 6.

Follow up:

public class MaximumSubarray{    public static int maximuntmSubarray(int[] a){        int n = n.length;        int max = a[0];        int[] dp = new int[n];        dp[0] = a[0];        for(int i = 1; i < n; i++){            dp[i] = (dp[i-1]>0 ? dp[i] : 0)+a[i];            max = Math.max(max,dp[i]);        }        return max;    }}

 

 

经典的动态规划问题。令数组dp[i]为前i个数的最大连续数之和,max初始值为a[0]。分解问题:

当前i-1个数的最大连续和为负时,那么另dp[i]=a[i];

当前i-1个数的最大连续和不为负时,另dp[i] = a[i] + dp[i-1];

最后与保存的max相比较,取最大值。

 

转载于:https://www.cnblogs.com/tiandiou/p/9678968.html

你可能感兴趣的文章
51job_selenium测试
查看>>
代理商数据库_文本过滤处理
查看>>
Bootstrapping算法
查看>>
性能测试(LoadRunner)基础知识
查看>>
数据结构(七)排序---归并排序
查看>>
java多线程知识点汇总(二)多线程实例解析
查看>>
mysql的用户管理(二)
查看>>
【科技】高斯消元简析
查看>>
没有欲望是一种什么样的感觉
查看>>
pzoj Problem 2127 养鸡场
查看>>
有趣的JavaScript隐式类型转换
查看>>
wireshark 无法抓取本地数据包
查看>>
sql 知道年龄 数据库里面只有身份证 查询条件为这个年龄的所有数据
查看>>
android 高德地图出现【定位失败key鉴权失败】
查看>>
如何使用mybatis插入数据之前就具生成id值
查看>>
算法笔记--基础数学知识
查看>>
Extjs Dom
查看>>
初始化linux部署tomcat
查看>>
Predictive Analytics for Business
查看>>
Python中常用的模块(OS模块)
查看>>