1 回答
TA贡献1828条经验 获得超6个赞
你的算法有点小问题,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>
添加回答
举报