和為s的連續正數序列20210208

2021-10-25 15:49:14 字數 1141 閱讀 7345

輸入乙個正整數 target ,輸出所有和為 target 的連續正整數序列(至少含有兩個數)。

序列內的數字由小到大排列,不同序列按照首個數字從小到大排列。

示例 1:

輸入:target =

9輸出:[[2

,3,4

],[4

,5]]

示例 2:

輸入:target =

15輸出:[[1

,2,3

,4,5

],[4

,5,6

],[7

,8]]

限制:

主要思路:暴力解決法。雙重迴圈遍歷陣列,找到對應的連續的和為target的序列。

注意:不需要遍歷整個陣列,只需要遍歷target/2即可,因為該值往後的值的和必然大於target。

時間複雜度:o(n^2)

空間複雜度:o(1)

public

int[

]findcontinuoussequence

(int target)

res.

add(arr)

;break;}

if(sum > target)}}

return res.

toarray

(new

int[res.

size()

]);}

主要思路:時間滑動視窗。關鍵在於確定左邊界和右邊界的邏輯:

這裡左右邊界始終往右移動,因此時間複雜度低。

時間複雜度:o(n)

空間複雜度:o(1)

public

int[

]findcontinuoussequence

(int target)

else

if(sum < target)

else

res.

add(arr)

; sum-=left;

left++;}

}return res.

toarray

(new

int[res.

size()

]);}

和為S的連續正數序列

題目描述 小明很喜歡數學,有一天他在做數學作業時,要求計算出9 16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和為100 至少包括兩個數 沒多久,他就得到另一組連續正數和為100的序列 18,19,20,21,22。現在把問題交給你,你能不能也很快的...

和為S的連續正數序列

小明很喜歡數學,有一天他在做數學作業時,要求計算出9 16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和為100 至少包括兩個數 沒多久,他就得到另一組連續正數和為100的序列 18,19,20,21,22。現在把問題交給你,你能不能也很快的找出所有和...

和為S的連續正數序列

小明很喜歡數學,有一天他在做數學作業時,要求計算出9 16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和為100 至少包括兩個數 沒多久,他就得到另一組連續正數和為100的序列 18,19,20,21,22。現在把問題交給你,你能不能也很快的找出所有和...