连续最大和
来源:互联网 发布:钢笔字 知乎 编辑:程序博客网 时间:2024/06/03 14:24
题目描述
一个数组有 N 个元素,求连续子数组的最大和。 例如:[-1,2,1],和最大的连续子数组为[2,1],其和为 3
解题思路:
看起来这道题挺复杂的,比如最大和中间有个负数怎么办?怎么判断中间有个负数呢?
其实不用判断,将所有数累加在一起,每次累加的时候记录本次累加值,跟上一次比较取最大者,
当遇到本次累加记录小于0的时候,发现对以后的序列有没用了,于是重置0。
代码如下:
<?php$handler = fopen('php://stdin','r');$n = fgets($handler);$arr = explode(' ',trim(fgets($handler)));fclose($handler);echo find($arr,$n);function find($arr,$n) { $value = 0; $max_value = -1e5; for ($i=0;$i<$n;$i++) { $value += $arr[$i]; $max_value = max($max_value,$value); if ($value<=0) { $value = 0; } } return $max_value;}
阅读全文
0 0
- 最大连续和
- 连续最大和
- 最大连续和问题
- hdu1003 连续最大和
- 最大连续整数和
- 最大连续和--分治
- 最大连续和
- 最大连续和
- 最大连续整数和
- 最大连续和
- 求最大连续和
- 最大连续和
- 最大连续数列和
- 最大连续和
- 最大连续字段和
- 连续最大和
- 最大连续和
- 最大连续和
- RSA加解密与签名验签
- sklearn中朴素贝叶斯
- android am force-stop not work
- Android开发各种Adapter的用法
- Hashtable
- 连续最大和
- thinkphp5创建数据库
- 系统性能调优攻略
- 基本Linux命令学习
- JSP内置对象
- 使用yii2框架中用gii生成crud的views找不到生成文件
- PHP错误异常处理详解
- Grid使用模板(template)出错 (备忘)
- 学习链接整理