php取数组中连续数,PHP实现求连续子数组最大和问题2种解决方法
本文实例讲述了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实现求连续子数组最大和问题2种解决方法相关推荐
- eclipse中不能找到dubbo.xsd报错”cvc-complex-type.2.4.c“的 两种解决方法
配置dubbo环境过程中的xml文件,安装官网的demo配置好后,出错: "Description Resource Path Location Type cvc-complex-type. ...
- 第五人格服务器维修中怎么进,第五人格联合狩猎进不去怎么办 四种解决方法介绍...
1.方法一.好友组队邀请.就是让能进入联合狩猎的小伙伴拉你组队,然后就能玩了,但打完一把后要散队重开,不然不能开下一把. 2.方法二.修改手机型号.只要把你的手机型号改成一些主流手机型号就好,这个风险 ...
- python如何将数组里的数提取出来_python [:3] 实现提取数组中的数
搜索答案搜索不到,自己试了一把. 首先生成一维数组 a =np.array([1,2,3,4,5,6,7,8,9]) >>> print a [1 2 3 4 5 6 7 8 9] ...
- 取数组中最大值和最小值
将数组中第一个元素赋值给一个变量,并且把这个变量作为最大值: 开始遍历数组,从第二个元素开始依次和第一个元素进行比较 如果当前的元素大于当前的最大值,就把当前的元素值赋值给最大值 移动到下一个元素,继 ...
- python二维数组表示_python中二维数组中的数如何表达
python二维数组如何挑选出一定范围的数值? 比如说有一个二维数组 13.1 13.2 13.3 13.4 15.5 15.0 45.2 22.3 22.3 3 [j for i in a for ...
- 1145: 零起点学算法52——数组中删数II
1145: 零起点学算法52--数组中删数II Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lld Submitted: 29 ...
- 找出数组中两数之和为指定值的所有整数对
一,问题描述 给定一个整型数组(数组中的元素可重复),以及一个指定的值.打印出数组中两数之和为指定值的 所有整数对 二,算法分析 一共有两种方法来求解.方法一借助排序,方法二采用HashSet 方法一 ...
- 数组对象,如何取数组中的最小值和最大值
需求:后端数据返回中,在数据里面需要取最先开始的时间和结束的时间,等于取数组中的最小值和最大值 newCategory() {let new1 = this.data.newList.map((ite ...
- 将一个数组中的数右边为复数,左边为正数,中间为0
将一个数组中的数右边为复数,左边为正数,中间为0(不考虑大小) #include<iostream> using namespace std; void sort(int* a, int ...
最新文章
- 拼多多黄峥给陆奇“兼职”,欲挖掘这类AI人才
- mysql隐藏密码_MySQL在Linux系统中隐藏命令行中的密码的方法
- leetcode算法题--数组中数字出现的次数 II
- 笔记-信息系统开发基础-架构设计-软件体系结构评估方式
- python 多行字符串拼接_零基础学python的第71天
- 用installshield打包的asp.net程序
- 另一种声音:容器是不是未来?
- 工程项目成本/进度综合控制方法及应用
- 2021年11月Python小屋编程比赛获奖名单
- thrift的lua实现
- JS记坑 ----- 在父节点中添加删除子节点
- i5 7200u 计算机专业,i5 7200U理论性能对比_笔记本评测-中关村在线
- vmware安装报错及注册时无权输入许可证密钥的解决办法及步骤
- C语言编写飞机大战程序,C语言实现简单飞机大战
- 如何修改PDF内容,PDF怎么旋转页面
- 实训日记(二)——分镜
- linux eclipse glib.h,eclipse Glib
- 如何运营好微信公众号
- cas4.0实现多种方式邮箱/手机号码登录及认证
- 计算机网络码片序列计算问题