求数组的连续子数组之和的最大值

 我来答
草原上之狼
高粉答主

2018-05-28 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.9万
采纳率:93%
帮助的人:4076万
展开全部
$arr=array(23,24,25,45,46,90,91,92,93);
$item=array();
$result=array();
$sum=array();
$k=0;
for($i=0;$i<sizeof($arr);$i++){
if(isset($arr[$i+1])){
if($arr[$i]+1==$arr[$i+1]){
$item[$k][]=$arr[$i];
$item[$k][]=$arr[$i+1];
}
if($arr[$i]+1!=$arr[$i+1]){ //数字连续判断
$k++;
}
}
}
foreach($item as $k=>$v){
$result[]=array_unique($v);
}
foreach($result as $k=>$v){
$sum[$k]=array_sum($v);
}
$max=max($sum); //最大值判断
$max_key=array_keys($sum,$max); //找出最大值所在的键
$max_count=sizeof($result[$max_key[0]]); //利用键找出最大值所在的连续数组

echo $max_count; //输出最大连续数
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式