Kadane のアルゴリズムで何が起こっているのか、誰か教えてくれませんか? 私の理解を確認したかった。これが私がそれを見る方法です。
配列をループし、ans 変数を表示される最大値に設定するたびに、その値が負になるまで、ans はゼロになります。
同時に、sum 変数はループのたびに上書きされ、以前に見られた合計の最大値またはこれまでの最大の「ans」まで上書きされます。ループの実行が終了すると、これまでに見た最大の合計または答えが得られます!
var sumArray = function(array) {
var ans = 0;
var sum = 0;
//loop through the array.
for (var i = 0; i < array.length; i++) {
//this is to make sure that the sum is not negative.
ans = Math.max(0, ans + array[i]);
//set the sum to be overwritten if something greater appears.
sum = Math.max(sum, ans)
}
return sum;
};