面试题57 - II. 和为s的连续正数序列 golang

题目

面试题57 - II. 和为s的连续正数序列
输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。

序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。

示例 1:

输入:target = 9
输出:[[2,3,4],[4,5]]
示例 2:

输入:target = 15
输出:[[1,2,3,4,5],[4,5,6],[7,8]]

解法

func findContinuousSequence(target int) [][]int {
	nums := [][]int{}
	for i := 1; i < target; i++ {
		// 需要先把i写入
		temp := []int{i}
		//temp := []int{}
		for j := i+1; (i+j) * (j-i+1) / 2 <= target; j++ {
			temp = append(temp, j)
			if (i+j) * (j-i+1) / 2 == target {
				nums = append(nums, temp)
			}
		}
	}
	return nums
}

发布了356 篇原创文章 · 获赞 247 · 访问量 36万+

猜你喜欢

转载自blog.csdn.net/csdn_kou/article/details/104691267