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

2021-09-11 01:15:27 字數 631 閱讀 3135

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

輸出描述:

輸出所有和為s的連續正數序列。序列內按照從小至大的順序,序列間按照開始數字從小到大的順序

時間限制:1秒 空間限制:32768k 熱度指數:176262

易得正數序列之和的最左邊的值最大為s/2(如s=99 99/2=44,則44+45=99)且最右邊的值最大為s/2+1,因為若最左邊為s/2+1,則連續子串行不可能小於s(至少為s+2),

則從1-s/2+1的過程中,可以採用雙指標的方法

設num為當前序列之和,若num==s 則,保留,並且right(最右邊的值)+1

若num若num>s, 則left(最左邊的值)+1

class solution 

else if(num>sum) //大於,則需去掉第乙個

else

}return ans;

}};

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

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

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

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

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

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