有N个正整数组成的一个序列。
给定整数sum,求长度最长的连续子序列,使他们的和等于sum,返回此子序列的长度,
如果没有满足要求的序列,返回−1。
给定一个由正整数组成的序列(以英文逗号分隔),和一个目标整数 sum。要求找出序列中和等于 sum 的最长连续子序列,并返回其长度。如果不存在满足要求的子序列,则返回 −1。例如,输入“1,2,3,4,2”和 sum 为 6 时,输出应为 3,因为子序列“1,2,3”的和等于 6,长度为 3。如果没有符合条件的子序列,返回 −1。
pre[i]
表示从序列的起点到第 i
个元素的和,即 pre[i] = a[1] + a[2] + ... + a[i]
。[i, j]
的和可以表示为:pre[j] - pre[i-1]
。这样可以通过常数时间计算任意区间的和。