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

 更新时间:2017年12月26日 14:47:42   作者:zoro_1992  
这篇文章主要介绍了PHP实现求连续子数组最大和问题2种解决方法,涉及php针对数组的遍历、判断、运算等相关操作技巧,需要的朋友可以参考下

本文实例讲述了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数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》、《php字符串(string)用法总结》、《php常用函数与技巧总结》、《PHP错误与异常处理方法总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

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

相关文章

  • PHP5.3与5.5废弃与过期函数整理汇总

    PHP5.3与5.5废弃与过期函数整理汇总

    这篇文章主要介绍了PHP5.3与5.5废弃与过期函数,需要的朋友可以参考下
    2014-07-07
  • php倒计时出现-0情况的解决方法

    php倒计时出现-0情况的解决方法

    这篇文章主要介绍了php倒计时出现-0情况的解决方法,实例分析了php倒计时程序出现-0的原因及相应的解决方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • set_include_path和get_include_path使用及注意事项

    set_include_path和get_include_path使用及注意事项

    set_include_path 设置默认包含路径,本文将介绍下其的使用方法,及注意事项,感兴趣的朋友可以了解下,或许对你学习php有所帮助
    2013-02-02
  • php fread读取文件注意事项

    php fread读取文件注意事项

    php fread函数用于从文件中读取一定长度的字符,本文章向大家介绍fread读取文件的实例以及使用该函数读取文件需要注意的几个地方,需要的朋友可以参考一下。
    2016-09-09
  • PHP实现通过中文字符比率来判断垃圾评论的方法

    PHP实现通过中文字符比率来判断垃圾评论的方法

    这篇文章主要介绍了PHP实现通过中文字符比率来判断垃圾评论的方法,是一个比较实用的技巧,对于进行PHP应用程序开发来说有一定的参考借鉴价值,需要的朋友可以参考下
    2014-10-10
  • php安全开发 添加随机字符串验证,防止伪造跨站请求

    php安全开发 添加随机字符串验证,防止伪造跨站请求

    伪造跨站请求比较难以防范,而且危害巨大,攻击者可以通过这种方式恶作剧,发spam信息,删除数据等等。那怎么防范伪造跨站攻击呢
    2013-02-02
  • php防注

    php防注

    php防注...
    2007-01-01
  • PHP使用pdo连接access数据库并循环显示数据操作示例

    PHP使用pdo连接access数据库并循环显示数据操作示例

    这篇文章主要介绍了PHP使用pdo连接access数据库并循环显示数据操作,结合实例形式较为详细的分析了php使用pdo进行access数据库连接、查询、执行sql语句、预处理等相关操作技巧与注意事项,需要的朋友可以参考下
    2018-06-06
  • PHP 日期加减的类,很不错

    PHP 日期加减的类,很不错

    PHP中对日期操作的函数功能强大,下面的代码是PHP对日期加减的类,很不错,有需要的朋友可以用一下。
    2009-10-10
  • php FLEA中二叉树数组的遍历输出

    php FLEA中二叉树数组的遍历输出

    最近在做一个项目其中涉及到“无限级回复”,FLEA中中有一个关于数组的辅助类:FLEA_Helper_Array,这个类里面有一个非常强大的数组处理方法:array_to_tree,这个方法可以把二维数组转换为二叉树结构
    2012-09-09

最新评论