看到有这么道算法题在博客园讨论,算法eaglet和邀月都已经设计出来了,花了点时间读了下,学到点东西顺便记录下来吧. 题目是从1...n的数列中,找出总和为n的连续子数列. 这里先设好算法中需要用到的关键变量: s:目标子数列的第一个元素 k:目标子数列的长度 那么目标子数列可以表示为(s, k) 1. naive算法(n^2) 最笨的,但是最容易的想到的方法,就是穷举所有的子数列: for s = 1 to n for k = 1 to n-s+1 if sum(s, k) == n outp…