题目描述
小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。...没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列?
输出所有和为 S 的连续正数序列。...例如和为 100 的连续序列有:
[9, 10, 11, 12, 13, 14, 15, 16]
[18, 19, 20, 21, 22]。...解题思路
滑动窗口核心思想:
由题意可知,需要根据指定的数,求解连续的正数序列。因此此序列可以看做是等差序列,其中公差为1。因此本题可以采用滑动窗口来求解正数序列。...窗口左侧为p1,窗口右侧为pn,窗口中元素的和为Sn,其中窗口中的序列服从等差序列。初始时,左侧窗口值为1,右侧窗口值为2。