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 相关文章推荐
实现php加速的eAccelerator dll支持文件打包下载
Sep 30 PHP
PHP防止跨域提交表单
Nov 01 PHP
有关于PHP中常见数据类型的汇总分享
Jan 06 PHP
PHP Curl出现403错误的解决办法
May 29 PHP
PHP实现更新中间关联表数据的两种方法
Sep 01 PHP
php关联数组快速排序的方法
Apr 17 PHP
PHP 生成微信红包代码简单
Mar 25 PHP
PHP设置Cookie的HTTPONLY属性方法
Feb 09 PHP
PHP中创建和编辑Excel表格的方法
Sep 13 PHP
在Ubuntu 18.04上安装PHP 7.3 7.2和7.0的方法
Apr 09 PHP
laravel实现上传图片的两种方式小结
Oct 12 PHP
php+laravel依赖注入知识点总结
Nov 04 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
How do I change MySQL timezone?
2008/03/26 PHP
joomla内置的表单验证功能使用方法
2010/06/11 PHP
php遍历文件夹所有文件子文件夹函数代码
2013/11/27 PHP
PHP安全下载文件的方法
2016/04/07 PHP
PHP微信刮刮卡 附微信接口
2016/07/22 PHP
PHP的PDO事务与自动提交
2019/01/24 PHP
一个简单的js鼠标划过切换效果
2010/06/30 Javascript
js删除所有的cookie的代码
2010/11/25 Javascript
关于捕获用户何时点击window.onbeforeunload的取消事件
2011/03/06 Javascript
JS复制到剪贴板示例代码
2013/10/30 Javascript
指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)
2014/02/21 Javascript
asp.net+js实现金额格式化
2015/02/27 Javascript
JavaScript构造函数详解
2015/12/27 Javascript
基于javascript实现彩票随机数生成(升级版)
2020/04/17 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
JavaScript基本类型值-Undefined、Null、Boolean
2017/02/23 Javascript
NodeJs实现定时任务的示例代码
2017/12/05 NodeJs
浅谈webpack组织模块的原理
2018/03/10 Javascript
vue组件三大核心概念图文详解
2019/05/30 Javascript
微信小程序渲染性能调优小结
2019/07/30 Javascript
基于js实现判断浏览器类型代码实例
2020/07/17 Javascript
浅谈python类属性的访问、设置和删除方法
2016/07/25 Python
Python 查找字符在字符串中的位置实例
2018/05/02 Python
python绘制多个曲线的折线图
2020/03/23 Python
Python 一行代码能实现丧心病狂的功能
2020/01/18 Python
Selenium 配置启动项参数的方法
2020/12/04 Python
有关HTML5页面在iPhoneX适配问题
2017/11/13 HTML / CSS
英国在线珠宝店:The Jewel Hut
2017/03/20 全球购物
I.T中国官网:精选时尚设计师单品网购平台
2018/03/26 全球购物
C语言如何决定使用那种整数类型
2016/11/26 面试题
法学专业应届生求职信
2013/10/16 职场文书
财务部总监岗位职责
2014/03/12 职场文书
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
交通事故和解协议书
2015/01/27 职场文书
董事长秘书岗位职责
2015/02/13 职场文书
2016优秀大学生个人事迹材料范文
2016/03/01 职场文书