有N个正整数组成的一个序列,给定一个整数sum

求长度最长的的连续子序列使他们的和等于sum

返回次子序列的长度,如果没有满足要求的序列 返回-1

备注:

输入序列仅由数字和英文逗号构成,数字之间采用英文逗号分割

序列长度 1<=N<=200,输入序列不考虑异常情况

由题目保证输入序列满足要求

示例

输入:

1,2,3,4,2

6

输出:

3

解析:

1,2,3和4,2两个序列均能满足要求,所以最长的连续序列为1,2,3 因此结果为3

输入:

1,2,3,4,2

20

输出:

-1

解释:

没有满足要求的子序列,返回-1

let str = '1,2,3,4,2'
let N = 6
function test(str){
    let arr = str.split(',')
    let left = 0
    let right = 0
    let Max = -1
    let sum = 0
    while (right<arr.length){
        if(sum<N){
            sum+=Number(arr[right])
        }else {
            if(sum===N){
                Max = Math.max(right-left,Max)
            }
            left = right
        }
        right ++
    }
    console.log(Max);
}
test(str)