有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)