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中获取内网用户MAC地址(WINDOWS/linux)的实现代码
Aug 11 PHP
自己在做项目过程中学到的PHP知识收集
Aug 20 PHP
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
Jun 24 PHP
php获取指定日期之间的各个周和月的起止时间
Nov 24 PHP
php模拟登陆的实现方法分析
Jan 09 PHP
PHP实现全角字符转为半角方法汇总
Jul 09 PHP
PHP人民币金额转大写实例代码
Oct 02 PHP
PHP使用PHPexcel导入导出数据的方法
Nov 14 PHP
yii2中添加验证码的实现方法
Jan 09 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
Apr 22 PHP
PHP  Yii清理缓存的实现方法
Nov 10 PHP
php安全配置记录和常见错误梳理(总结)
Mar 28 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中count获取多维数组长度的方法
2014/11/03 PHP
typecho插件编写教程(六):调用接口
2015/05/28 PHP
详解YII关联查询
2016/01/10 PHP
html下载本地
2006/06/19 Javascript
jQuery 淡出一个图像到另一个图像的实现代码
2013/06/12 Javascript
选择复选框按钮置灰否则按钮可用
2014/05/22 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
2016/01/14 Javascript
javascript使用Promise对象实现异步编程
2016/03/01 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
jQuery Ajax使用FormData对象上传文件的方法
2016/09/07 Javascript
Js动态设置rem来实现移动端字体的自适应代码
2016/10/14 Javascript
JS经典正则表达式笔试题汇总
2016/12/15 Javascript
H5实现仿flash效果的实现代码
2017/09/29 Javascript
微信小程序组件之srcoll-view的详解
2017/10/19 Javascript
图文介绍Vue父组件向子组件传值
2018/02/17 Javascript
浅析Vue 和微信小程序的区别、比较
2018/08/03 Javascript
Python设计模式编程中Adapter适配器模式的使用实例
2016/03/02 Python
django使用html模板减少代码代码解析
2017/12/12 Python
python实现数据导出到excel的示例--普通格式
2018/05/03 Python
Python + selenium自动化环境搭建的完整步骤
2018/05/19 Python
Python Web框架之Django框架文件上传功能详解
2019/08/16 Python
如何使用python代码操作git代码
2020/02/29 Python
Python实现代码块儿折叠
2020/04/15 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
教师党性分析材料
2014/02/04 职场文书
2014年乡镇植树节活动方案
2014/02/28 职场文书
岗位廉洁从政承诺书
2014/03/27 职场文书
《春笋》教学反思
2014/04/15 职场文书
治超工作实施方案
2014/05/04 职场文书
高中国旗下的演讲稿
2014/08/28 职场文书
市场督导岗位职责
2015/04/10 职场文书
2015年小学数学教师个人工作总结
2015/05/25 职场文书
赵氏孤儿观后感
2015/06/09 职场文书
《童年的发现》教学反思
2016/02/18 职场文书
信息技术课教学反思
2016/02/23 职场文书
淡雅古典唯美少女娇媚宁静迷人写真
2022/03/21 杂记