PHP实现求连续子数组最大和问题2种解决方法


Posted in PHP onDecember 26, 2017

本文实例讲述了PHP实现求连续子数组最大和问题2种解决方法。分享给大家供大家参考,具体如下:

问题描述

求子数组的最大和

题目描述:

输入一个整形数组,数组里有正数也有负数。
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
求所有子数组的和的最大值。要求时间复杂度为O(n)

关于连续子数组最大和这个问题,有两种解法,一种是动态规划

解法如下:

function getMaxSubSum($arr){
  $curSum = $arr[0];
  $maxSum = $arr[0];
  for($i = 1; $i < count($arr); $i++){
    if($curSum > 0) $curSum += $arr[$i];
    else $curSum = $arr[$i];
    if($curSum > $maxSum) $maxSum = $curSum;
  }
  return $maxSum;
}

还有一种是扫描法

function getMaxSubSum($arr){
  $curSum = 0;
  $maxSum = 0;
  for($i = 0; $i < count($arr); $i++ ){
    $curSum += $arr[$i];
    if($curSum <= 0) $curSum = 0;
    if($curSum > $maxSum) $maxSum = $curSum;
  }
  if($maxSum == 0){
    $maxSum = $arr[0];
    for($i = 1; $i < count($arr); $i++){
      if($maxSum < $arr[$i] ) $maxSum = $arr[$i];
    }
  }
  return $maxSum;
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php cookies中删除的一般赋值方法
May 07 PHP
php DOS攻击实现代码(附如何防范)
May 29 PHP
浅析php变量修饰符static的使用
Jun 28 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
Jan 14 PHP
codeigniter教程之多文件上传使用示例
Feb 11 PHP
PHP取余函数介绍MOD(x,y)与x%y
May 15 PHP
destoon实现公司新闻详细页添加评论功能的方法
Jul 15 PHP
php创建和删除目录函数介绍和递归删除目录函数分享
Nov 18 PHP
在PHP程序中使用Rust扩展的方法
Jul 03 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
Dec 30 PHP
浅谈php处理后端&amp;接口访问超时的解决方法
Oct 29 PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
Dec 26 #PHP
thinkphp5 URL和路由的功能详解与实例
Dec 26 #PHP
php-msf源码详解
Dec 25 #PHP
关于 Laravel Redis 多个进程同时取队列问题详解
Dec 25 #PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 #PHP
浅析PHP中的闭包和匿名函数
Dec 25 #PHP
thinkphp5 加载静态资源路径与常量的方法
Dec 24 #PHP
You might like
php xml 入门学习资料
2011/01/01 PHP
PHP二维数组排序的3种方法和自定义函数分享
2014/04/09 PHP
PHP PDOStatement::setFetchMode讲解
2019/02/03 PHP
Prototype 学习 工具函数学习($A方法)
2009/07/12 Javascript
浅谈javascript 面向对象编程
2009/10/28 Javascript
在jQuery1.5中使用deferred对象 着放大镜看Promise
2011/03/12 Javascript
js遍历、动态的添加数据的小例子
2013/06/22 Javascript
JavaScript闭包函数访问外部变量的方法
2014/08/27 Javascript
JQuery使用$.ajax和checkbox实现下次不在通知功能
2015/04/16 Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
2016/04/03 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
JavaScript 程序错误Cannot use 'in' operator to search的解决方法
2017/07/10 Javascript
Vue项目分环境打包的实现步骤
2018/04/02 Javascript
Vuejs 实现简易 todoList 功能 与 组件实例代码
2018/09/10 Javascript
jQuery实现模拟搜索引擎的智能提示功能简单示例
2019/01/27 jQuery
微信小程序template模版的使用方法
2019/04/13 Javascript
微信小程序系列之自定义顶部导航功能
2019/05/21 Javascript
JavaScript隐式类型转换代码实例
2020/05/29 Javascript
JS删除对象中某一属性案例详解
2020/09/08 Javascript
[01:50]2014DOTA2西雅图邀请赛 专访欢乐周宝龙
2014/07/08 DOTA
[09:31]2016国际邀请赛中国区预选赛Yao赛后采访 答题送礼
2016/06/27 DOTA
在Python中使用cookielib和urllib2配合PyQuery抓取网页信息
2015/04/25 Python
Python cookbook(数据结构与算法)筛选及提取序列中元素的方法
2018/03/19 Python
Python设计模式之迭代器模式原理与用法实例分析
2019/01/10 Python
python钉钉机器人运维脚本监控实例
2019/02/20 Python
numpy.linspace函数具体使用详解
2019/05/27 Python
python实现单目标、多目标、多尺度、自定义特征的KCF跟踪算法(实例代码)
2020/01/08 Python
python实现猜单词游戏
2020/05/22 Python
美国女孩服装购物网站:Justice
2017/03/04 全球购物
公司员工检讨书
2014/02/08 职场文书
软环境建设心得体会
2014/09/09 职场文书
2014银行授权委托书样本
2014/10/04 职场文书
淘宝好评语句大全
2014/12/31 职场文书
应届毕业生自荐信
2015/03/04 职场文书
幼儿园中秋节活动总结
2015/03/23 职场文书
SQL Server数据库备份和恢复数据库的全过程
2022/06/14 SQL Server