30秒到达战场
你的算法有点小问题,sum需要每次重新赋值为0的。下面是完整的代码,用input和console比较友好一些。<html><head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1"> <title></title> <style type="text/css"> html, body { width: 100%; overflow: hidden; } * { margin: 0; padding: 0; } input { display: block; width: 300px; line-height: 30px; margin: 10px; padding-left: 10px; } button { display: block; width: 100px; height: 30px; margin: 50px auto; } </style></head><body> <input id="n" type="text" name="" placeholder="n" value="6"> <input id="m" type="text" name="" placeholder="m" value="4"> <input id="array" type="text" name="" placeholder="arr" value="1, -3, 5, 1, -2, 3"> <button>ok</button> <script src="../js/lib/jquery.min.js"></script><script src="../js/lib/vue.js"></script><script language="javascript" type="text/javascript">$("button").on("click", function() { var n = $("#n").val() - 0 var m = $("#m").val() - 0 var arr = $("#array").val().split(",") if(!(n>=m && n==arr.length)) { console.error("input invalid") return } //arr = getNumArr(arr) /*n = 6 m = 4 arr = [1, -3, 5, 1, -2, 3]*/ var tt = n-m+1 var arrr = [] var sum = 0 for(var j=0; j<tt; j++) { sum = 0 for(var i=j; i<=m+j; i++){ if (i<m+j){ sum += parseInt(arr[i]) } else { arrr.push(sum) } } } console.log(Math.max.apply(Math, arrr));})</script></body></html>