js實現求連續子陣列的最大和並輸出下標
阿新 • • 發佈:2019-01-23
<script> //採用動態規劃法 function findGreatestSun(arr){ var curSum, greatestSum; curSum = greatestSum = 0; var start, end; start = end = 0; //陣列中正負數都有 for(var i = 0;i<arr.length;i++){ curSum+= arr[i]; if(curSum < 0){ curSum = 0; start++; } if(curSum > greatestSum){ greatestSum = curSum; end = i; } } //若陣列中只有非正數,則找到最大的值即為最大和 if(greatestSum == 0){ start = end = 0; for(var i = 1;i<arr.length;i++){ greatestSum = arr[0]; if(greatestSum < arr[i]){ greatestSum = arr[i]; start = end = i; } } } alert("sum:"+greatestSum +"--start:"+start+"--end:"+end); } var arr_a = [1, -2, 3, 10, -4, 7, 2, -5] findGreatestSun(arr_a); </script>