求一个整数数组中和最大的连续子数组,例如:[1, 2, -4, 4, 10, -3, 4, -5, 1]的最大连续子数组是[4, 10, -3, 4](需写明思路,并编程实现)
2018-03-16 15:34
441 查看
求一个整数数组中和最大的连续子数组,例如:[1, 2, -4, 4, 10, -3, 4, -5, 1]的最大连续子数组是[4, 10, -3, 4](需写明思路,并编程实现)$arr = [ 1 , 2 , -4 , 4 , 10 , -23 , 4 , -5 , 1];
$max_sum = 0;
$sum=0;
$new = [];
$i = 1;
echo '<pre/>';
foreach( $arr as $key => $value ){
if($sum<0){
unset($new[$i]);
$i++;
$sum=$value;
}else{
$sum+=$value;
}
$new[$i][] = $value;
if($max_sum<$sum){
$max_arr = $new;
$max_sum=$sum;
}
}
print_r($max_sum);
print_r($max_arr);
exit;
$max_sum = 0;
$sum=0;
$new = [];
$i = 1;
echo '<pre/>';
foreach( $arr as $key => $value ){
if($sum<0){
unset($new[$i]);
$i++;
$sum=$value;
}else{
$sum+=$value;
}
$new[$i][] = $value;
if($max_sum<$sum){
$max_arr = $new;
$max_sum=$sum;
}
}
print_r($max_sum);
print_r($max_arr);
exit;
相关文章推荐
- 面试题,求一个整数数组中和最大的连续子数组,例如:[1, 2, -4, 4, 10, -3, 4, -5, 1]的最大连续子数组是[4, 10, -3, 4](需写明思路,并编程实现)
- 输入整形数组,数组里有正数也有负数,数组中一个或连续的多个整数组成数组的子数组,求所有子数组中和的最大值 ,例如输入的数组为{1,-2,3,10,-4,7,2,-5}和最大的子数组为{3,10,
- 从键盘任意输入10个整数,用函数编程实现将其中最大数与最小数的位置对换后,再输出调整后的数组。
- 设一个长度为10的整型数组, 0)要求每个元素的值通过scanf输入,输入完成后, 1)请顺序输出这些整数, 2)请倒序输出这些整数, 3)输出这些数中的最大值, 4)输出这些数中的最小值
- 有一个数组,由正整数、负整数、零组成,求和最大的连续子数组
- 一个含n个元素的整数数组至少存在一个重复数, 请编程实现,在O(n)时间内找出其中任意一个重复数。
- 求一个整数数组的最大元素,用递归方法实现
- 一个数组中和最大的连续子数组
- 给一个整数数组,对数组中的每个整数中的所有数字按照升序排列(如101排序后为011)请写一个方法,输出排序后的数组中的最大数。 例如有一个数组: 101、132、375,排序后11、123、357,
- js实现输入一个数组,实现数组元素能够组成的最大整数
- 给定一个由非负整数和整数m组成的数组,可以将该数组分成m个非空的连续子数组。 写一个算法来最小化这些m个子阵列之间的最大和。
- [java实现]找一个数组的最大和的连续子数组(时间复杂度 O(n))
- 有一个整数n,写一个函数f(n),返回0~n之间出现的“1”的个数,例如f(1)=1; f(13)=6(1,10,11,12,13一共6个1),最大的f(n)=n的n是多少
- 【1】 设一个长度为10的整型数组,  0)要求每个元素的值通过scanf输入,输入完成后,  1)请顺序输出这些整数,  2)请倒序输出这些整数,  3)输出这些数中的最大值,最小值
- java 编写程序实现从控制台接收一个 5 位以上的整数,使用数组来判断该数字 * 是否是回文数。(例如:789987,12344321是回文数)
- 【编程题目】一个整数数组,长度为 n,将其分为 m 份,使各份的和相等,求 m 的最大值★★ (自己没有做出来!!)
- 求一个整数数组的最大连续子数组之和
- js实现随机选取[10,100)中的10个整数,存入一个数组,并排序。 另考虑(10,100]和[10,100]两种情况。
- [java实现]找一个数组的最大和的连续子数组(时间复杂度 O(n))
- [Baidu] 给一个整数数组,求连续子数组最大和