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 相关文章推荐
基于数据库的在线人数,日访问量等统计
Oct 09 PHP
PHP 中英文混合排版中处理字符串常用的函数
Apr 12 PHP
PHP 一个页面执行时间类代码
Mar 05 PHP
深入解析PHP中的(伪)多线程与多进程
Jul 01 PHP
php实现用于计算执行时间的类实例
Apr 18 PHP
php实现粘贴截图并完成上传功能
May 17 PHP
PHP中PDO的事务处理分析
Apr 07 PHP
tp5(thinkPHP5)操作mongoDB数据库的方法
Jan 20 PHP
tp5实现微信小程序多图片上传到服务器功能
Jul 16 PHP
laravel5环境隐藏index.php后缀(apache)的方法
Oct 12 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
Apr 07 PHP
php中get_object_vars()在数组的实例用法
Feb 22 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中上传大体积文件时需要的设置
2006/10/09 PHP
php中的观察者模式
2010/03/24 PHP
php使用get_class_methods()函数获取分类的方法
2016/07/20 PHP
PHP中include/require/include_once/require_once使用心得
2016/08/28 PHP
Laravel 创建可以传递参数 Console服务的例子
2019/10/14 PHP
Jquery跨域获得Json时invalid label错误的解决办法
2011/01/11 Javascript
JQuery1.6 使用方法三
2011/11/23 Javascript
JS的replace方法详细介绍
2012/11/09 Javascript
jquery 选择器引擎sizzle浅析
2013/02/06 Javascript
Node调试工具JSHint的安装及配置教程
2014/05/27 Javascript
Node.js中的事件驱动编程详解
2014/08/16 Javascript
nodejs中操作mysql数据库示例
2014/12/20 NodeJs
使用控制台破解百小度一个月只准改一次名字
2015/08/13 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
2015/08/20 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
JS使用单链表统计英语单词出现次数
2016/06/16 Javascript
Angularjs 动态改变title标题(兼容ios)
2016/12/29 Javascript
vue中用动态组件实现选项卡切换效果
2017/03/25 Javascript
详解Vue用axios发送post请求自动set cookie
2017/05/10 Javascript
JavaScript 中调用 Kotlin 方法实例详解
2017/06/09 Javascript
浅谈Vue的加载顺序探讨
2017/10/25 Javascript
小程序自定义组件实现城市选择功能
2018/07/18 Javascript
微信小程序点击滚动到指定位置的实现
2020/05/22 Javascript
[01:04:35]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第一场
2018/04/04 DOTA
python开发简易版在线音乐播放器
2017/03/03 Python
浅谈python脚本设置运行参数的方法
2018/12/03 Python
在pandas中遍历DataFrame行的实现方法
2019/10/23 Python
Scrapy 配置动态代理IP的实现
2020/09/28 Python
CSS3实现水平居中、垂直居中、水平垂直居中的实例代码
2020/02/27 HTML / CSS
喜诗官方在线巧克力店:See’s Candies
2017/01/01 全球购物
土耳其风格手工珠宝:Ottoman Hands
2019/07/26 全球购物
法国在线药房:Shop Pharmacie
2019/11/26 全球购物
小学感恩节活动策划方案
2014/10/06 职场文书
戒赌保证书
2015/05/11 职场文书
导游词之杭州岳王庙
2019/11/13 职场文书
python3使用diagrams绘制架构图的步骤
2021/04/08 Python