面试题57-II.和为s的连续正数序列
AAA_BiteTheDust 人气:0
# 面试题57-II.和为s的连续正数序列
## 1.题目
[LeetCode-面试题57-II.和为s的连续正数序列](https://leetcode-cn.com/problems/he-wei-sde-lian-xu-zheng-shu-xu-lie-lcof/)
> 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。
序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。
## 2.标准答案
[LeetCode-面试题57-II.和为s的连续正数序列-官方题解](https://leetcode-cn.com/problems/he-wei-sde-lian-xu-zheng-shu-xu-lie-lcof/solution/mian-shi-ti-57-ii-he-wei-sde-lian-xu-zheng-shu-x-2/)
1. 枚举+暴力
2. 枚举+数学优化
3. 双指针
## 3.心得
由于面试完华为,最近有些松懈,好久没有做题,我拿到题第一眼是有点懵的。
关键点是要理解到,连续正数序列的和,其实是个差为1的等差数列的和。也就是说,只要知道这个等差数列的头和尾,就能知道这个数列的和,将其与s比较即可。
理解了关键点,接下来的思路就很多了。
首先是暴力枚举,枚举数列的头和尾即可。
其次我想到的是双指针法,因为最近面试刚手撕了[三数之和](https://leetcode-cn.com/problems/3sum/),所以我第一时间想到了这种方法。
```C++
class Solution {
public:
vector
加载全部内容