面試題57 II 和為s的連續正數序列

2022-08-24 22:36:10 字數 583 閱讀 9484

leetcode-面試題57-ii.和為s的連續正數序列

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

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

leetcode-面試題57-ii.和為s的連續正數序列-官方題解

列舉+暴力

列舉+數學優化

雙指標由於面試完華為,最近有些鬆懈,好久沒有做題,我拿到題第一眼是有點懵的。

關鍵點是要理解到,連續正數序列的和,其實是個差為1的等差數列的和。也就是說,只要知道這個等差數列的頭和尾,就能知道這個數列的和,將其與s比較即可。

理解了關鍵點,接下來的思路就很多了。

首先是暴力列舉,列舉數列的頭和尾即可。

其次我想到的是雙指標法,因為最近面試剛手撕了三數之和,所以我第一時間想到了這種方法。

class solution 

else if (sum < target) r++;

else l++;

}return vec;

}};

面試題57 II 和為s的連續正數序列

題目 輸入乙個正整數 target 輸出所有和為 target 的連續正整數序列 至少含有兩個數 序列內的數字由小到大排列,不同序列按照首個數字從小到大排列。注意 題目要求的是連續的數字 方法一 暴力 列舉 第一層遍歷,固定 i 的位置,第二層遍歷從 i 的位置開始,乙個乙個加起來,當和 sum 的...

面試題 和為s的連續正數序列

輸入乙個正數s,列印出所有和為s的連續正數序列 至少含有兩個數 例如,輸入15,由於1 2 3 4 5 4 5 6 7 8 15,所以列印出3個連續序列1 5 4 6和7 8。思路 依舊雙指標套路 void findcontinuoussequence int sum if sum 3 return...

57 和為S的連續正數序列

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