为了账号安全,请及时绑定邮箱和手机立即绑定

求最大序列和

求最大序列和

翻翻过去那场雪 2018-12-13 18:19:15
题目输入一个长度为 n 的整数序列,从中找出一段不超过 m 的连续序列,使得找到的整个序列和最大。例如:1,-3,5,1,-2,3当 m=4 时,s=5+1-2+3=7当 m=2 或 m=3 时,s=5+1=6程序要求:输入:第一行输入两个数 n,m第二行有 n 个数输出:一个数(m 个数的最大连续序列和)样例输入6 41 -3 5 1 -2 3样例输出7说明java/c 都可以我只学了点 js 所以用了 js我的代码如下:难道是push的问题吗 求解救 求别嫌弃quq
查看完整描述

1 回答

?
30秒到达战场

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>


查看完整回答
反对 回复 2019-01-08
  • 1 回答
  • 0 关注
  • 587 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信