Skip to content

Latest commit

 

History

History
35 lines (30 loc) · 839 Bytes

57 - II. 和为s的连续正数序列.md

File metadata and controls

35 lines (30 loc) · 839 Bytes

解题思路

滑动窗口

利用 l,r 作为边界维护滑动窗口和总值 当和总值小于 target,r++ 向右扩大滑动窗口 当和总值大于 target,l++ 向右缩小滑动窗口 当和总值等于 target,存储当前 [l,r] 的排序,并继续 l++ 向右缩小滑动窗口

func findContinuousSequence(target int) [][]int {
    ans := make([][]int, 0)
    l, r := 1, 2
    for l <= target/2 {
        sum := (l + r) * (r-l+1)/2
        if sum == target {
            res := make([]int, 0)
            for i := l; i <= r; i++ {
                res = append(res, i)
            }
            ans = append(ans, res)
            l++
        } else if sum < target {
            r++
        } else if sum > target {
            l++
        }
    }
    return ans
}