剣指Offer-30.連続サブ配列の最大和(Javascript)
3357 ワード
30.連続サブ配列の最大和
『剣指Offer』ブラシ問題GitHubリンク
タイトルリンク
タイトルの説明
HZはたまに専門的な問題を持って非コンピュータ専門の同級生をからかっている.今日のテストグループの会議が終わった後、彼はまた話をしました:古い1次元モードの識別の中で、いつも連続するサブベクトルの最大和を計算する必要があって、ベクトルがすべて正数の時、問題はとてもよく解決します.しかし、ベクトルに負の数が含まれている場合、ある負の数を含んで、隣の正の数が補うことを期待しますか?
例えば,{6,−3,−2,7,−15,1,2,2},連続サブベクトルの最大和は8(0番目から3番目まで)である.配列をあげて、その最大連続サブシーケンスの和を返して、あなたは彼にだまされませんか?(サブベクトルの長さは少なくとも1)
問題を解く構想.
Code
function FindGreatestSumOfSubArray(array)
{
// write code here
var len = array.length;
var maxSum = array[0],currSum = array[0];
for(var i = 1; i < len; i++){
if(currSum < 0){
currSum = array[i];
}else{
currSum += array[i];
}
if(currSum > maxSum){
maxSum = currSum;
}
}
return maxSum;
}