劍指Offer 41 和為S的連續正數序列

2021-10-04 00:19:48 字數 992 閱讀 9226

題目描述

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

輸出描述:

輸出所有和為s的連續正數序列。序列內按照從小至大的順序,序列間按照開始數字從小到大的順序
題解一:根據視窗內值之和來確定視窗的位置和寬度

1

public

static arraylist> findcontinuoussequence(int

sum)

14arraylists.add(list);

15 phigh++;

16//

如果當前視窗內的值之和小於sum,那麼右邊視窗右移一下

17//

如果當前視窗內的值之和大於sum,那麼左邊視窗右移一下

18 }else

if(cur>sum)else23}

24return

arraylists;

25 }

題解二:分奇數與偶數

1

public

static arraylist> findcontinuoussequence(int

sum)

10//

system.out.println(list);

11arraylists.add(list);12}

13}14return

arraylists;

15 }

測試:

1

public

static

void

main(string args)

劍指offer 41 和為S的連續正數序列

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

劍指Offer 41 和為S的連續正數序列

雙指標法,指標均單向移動,求和 記憶體超限 您的程式使用了超過限制的記憶體,case通過率為0.00 class solution result.push back tmp else if tempsum對照書上的 感覺自己的 思路沒有問題,檢視答案區發現了幾個問題 1 while迴圈為增強魯棒性,...

劍指offer41 和為S的連續正數序列

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