几个整数组合相加命中某个范围,输出所有的组合方案。int32
Example1:
比如输入 {1,2,3} 范围 [7,9]
可以输出:
(每个 a[i]的个数,最后一个是 sum )
7 0 0 7
8 0 0 8
9 0 0 9
0 4 0 8
Example2:
输入{1,2,3,4,5} 范围 [30,35]
输出:
30 0 0 0 0 30
0 0 0 0 6 30
最简单的做法:
n = sum /a
m = sum /b
z = sum /c
{
枚举 1 to n
枚举 1 to m
枚举 1 to z
求 sum
}
这个时间复杂度肯定不行的。各位大牛有好的解法吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.