PHP求最大子序列和的算法实现


Posted in PHP onJune 24, 2011
<?php 
//作者:遥远的期待 
//QQ:15624575 
//算法分析:1、必须是整数序列、2、如果整个序列不全是负数,最大子序列的第一项必须是正数,否则最大子序列后面的数加起来再加上第一项的负数,其和肯定不是最大的;3、如果整个序列都是负数,那么最大子序列的和是0; 
//全负数序列很简单,不举例 
$arr=array(4,-3,5,-2,-1,2,6,-2); 
function getmaxsum($arr){ 
$thissum=0; 
$maxsum=0; 
$start=0;//记录子序列的起始下标 
$end=0;//记录子序列的结束下标 
for($i=0;$i<count($arr);$i++){ 
$thissum+=$arr[$i];//取得当前子序列的和 
if($thissum>$maxsum){//如果当前子序列的和大于当前最大子序列的和 
$maxsum=$thissum;//改变当前最大子序列的和 
$end=$i; 
}else if($thissum<0){//如果当前子序列的和小于0,则把下一个元素值假定为最大子序列的第一项,这里可以保证最大自序列的第一项一定是正数 
$thissum=0;//前提这个序列不全是负数 
$start=$i+1; 
} 
} 
$parr=array($start,$end,$maxsum); 
return $parr; 
} 
list($start,$end,$maxsum)=getmaxsum($arr); 
echo '最大子序列是:'; 
for($i=$start;$i<=$end;$i++){ 
echo $arr[$i].' '; 
} 
echo '<br>'; 
echo '最大子序列的和是'.$maxsum; 
?>
PHP 相关文章推荐
VML绘图板②脚本--VMLgraph.js、XMLtool.js
Oct 09 PHP
PHP脚本的10个技巧(2)
Oct 09 PHP
DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
Nov 21 PHP
浅谈php serialize()与unserialize()的用法
Jun 05 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
Aug 31 PHP
php sybase_fetch_array使用方法
Apr 15 PHP
20个2014年最优秀的PHP框架回顾
Oct 22 PHP
Yii框架弹出框功能示例
Jan 07 PHP
php上传excel表格并获取数据
Apr 27 PHP
PHP基于openssl实现的非对称加密操作示例
Jan 11 PHP
Yii框架中用response保存cookie,用request读取cookie的原理解析
Sep 04 PHP
Laravel-添加后台模板AdminLte的实现方法
Oct 08 PHP
php中转义mysql语句的实现代码
Jun 24 #PHP
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
Jun 24 #PHP
php中对2个数组相加的函数
Jun 24 #PHP
php判断输入不超过mysql的varchar字段的长度范围
Jun 24 #PHP
PHP array操作10个小技巧分享
Jun 23 #PHP
php 缩略图实现函数代码
Jun 23 #PHP
php中随机显示图片的函数代码
Jun 23 #PHP
You might like
php 设计模式之 工厂模式
2008/12/19 PHP
PHPMailer 中文使用说明小结
2010/01/22 PHP
利用PHP函数计算中英文字符串长度的方法
2014/11/11 PHP
php和C#的yield迭代器实现方法对比分析
2019/07/17 PHP
jquery easyui combox一些实用的小方法
2013/12/25 Javascript
jquery获得同源iframe内body下标签的值的方法
2014/09/25 Javascript
JavaScript学习总结之JS、AJAX应用
2016/01/29 Javascript
JavaScript中的this使用详解
2016/07/27 Javascript
js动态生成form 并用ajax方式提交的实现方法
2016/09/09 Javascript
浅谈express.js框架中间件(middleware)
2019/04/07 Javascript
vue+element加入签名效果(移动端可用)
2019/06/17 Javascript
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
2019/09/06 Javascript
jQuery+ajax实现文件上传功能
2020/12/22 jQuery
[05:13]TI4 中国战队 机场出征!!
2014/07/07 DOTA
启动Atom并运行python文件的步骤
2018/11/09 Python
Python识别html主要文本框过程解析
2020/02/18 Python
Python基于codecs模块实现文件读写案例解析
2020/05/11 Python
小 200 行 Python 代码制作一个换脸程序
2020/05/12 Python
python3访问字典里的值实例方法
2020/11/18 Python
python 使用csv模块读写csv格式文件的示例
2020/12/02 Python
如何用Python提取10000份log中的产品信息
2021/01/14 Python
Django+Django-Celery+Celery的整合实战
2021/01/20 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
2021/03/04 Python
中药专业大学生医药工作求职信
2013/10/25 职场文书
迎新晚会邀请函
2014/02/01 职场文书
《难忘的泼水节》教学反思
2014/02/27 职场文书
年会主持词结束语
2014/03/27 职场文书
《赶海》教学反思
2014/04/20 职场文书
企业安全生产承诺书
2014/05/22 职场文书
小学生迎国庆演讲稿
2014/09/05 职场文书
教师政风行风自查自纠报告
2014/10/21 职场文书
2015年学校食堂工作总结
2015/04/22 职场文书
虎兄虎弟观后感
2015/06/12 职场文书
党课主持词大全
2015/06/30 职场文书
嵌入式Redis服务器在Spring Boot测试中的使用教程
2021/07/21 Redis
Redis字典实现、Hash键冲突及渐进式rehash详解
2021/09/04 Redis