php实现最大自序和算法
Posted 路漫漫其修远兮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php实现最大自序和算法相关的知识,希望对你有一定的参考价值。
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
示例:
输入: [-2,1,-3,4,-1,2,1,-5,4],
输出: 6(最大子序列:4 -1 2 1 )
第一种:
$arr = [-2,1,-3,4,-1,2,1,-5,4]; function maxSubArray($nums) { for($i=1;$i<count($nums);$i++) $nums[$i] = max($nums[$i],$nums[$i]+$nums[$i-1]); return max($nums); } echo maxSubArray($a);
第二种:
$arr = [-2,1,-3,4,-1,2,1,-5,4]; $len = count($arr); $b =[]; $b[0] = $arr[0]; $max = $arr[0] >0 ?$arr[0]:0; $start_x = 0; for($i=1;$i<$len;$i++) { if(($b[$i-1] + $arr[$i]) > $arr[$i]){ $b[$i] = $b[$i-1] + $arr[$i]; }else{ $b[$i] = $arr[$i]; $start_x = $i; ; } if($max < $b[$i]) { $max = $b[$i]; $end_x = $i; } } print ‘最大子和: ‘.$max." "; print ‘开始位置: ‘.$start_x." "; print ‘结束位置: ‘.$end_x." "; print ‘最大子序列:‘; for($i=$start_x;$i<=$end_x;$i++){ print $arr[$i].‘ ‘; }
以上是关于php实现最大自序和算法的主要内容,如果未能解决你的问题,请参考以下文章