01.最大子阵列和
最大和子数组问题在于找到数组或整数列表中的连续子序列的最大和:
maxSequence([-2, 1, -3, 4, -1, 2, 1, -5, 4])
// should be 6: [4, -1, 2, 1]
简单的情况是当列表仅由正数组成时,最大和是整个数组的总和。如果列表仅由负数组成,则返回0。
空列表被认为具有零最大和。请注意,空列表或数组也是有效的子列表/子阵列。
var maxSequence = function(arr){
var max=0;
if(arr.length==0){
return 0;
}
for(var i=0;i<arr.length;i++){
var sum=arr[i];
for(var j=i+1;j<arr.length;j++){
sum+=arr[j];
if(sum>max){
max=sum;
}
}
}
return max;
}
思路:通过循环可以获取arr中所有的值,先设置一个最大值,给数组中的每一位从前向后增加的计算,每一次计算都对比这个值与最大值的大小,即可得到最大子阵列和