如何优雅的解这个题?

2022-08-22 10:44:22 +08:00
 Gawain

a=[1,2,3,4,5,6,7,8]

b=[1,2,3,4,5,6,7,8]

b=[1,2,3,4,5,6,7,8]

已知 a + b + c = 16

求全部 abc 的组合

线性代数还是数组啥的,都还给老师了,只会 for 循环了...

4205 次点击
所在节点    Python
25 条回复
fkdtz
2022-08-22 15:09:41 +08:00
three sum 乃至于 n sum 问题
wangtian2020
2022-08-22 15:39:00 +08:00
选择内存最小方案 ×
选择运行时间最短方案 ×
考虑到循环总次数尚可接受,选择不用动脑自己写的最快的 for 循环方案 √
Gawain
2022-08-22 16:13:40 +08:00
@brucmao
@Jooooooooo

非常感谢,这个貌似就是我要找到
UIXX
2022-08-22 17:02:21 +08:00
比较同意循环方案,省脑。

实际上,从几何的角度看,就是一个求平面上格点的问题。由于公式的特殊性(整个平面的倾斜角为 45 度),以及数值的特殊性(和为偶数),这些格点并不需要计算,可以被直接列出来。复杂度等同于输出规模。

和为奇数的情况也差不多。

如果公式变了(平面倾斜度不再是 45 度,甚至不再是平面),那代数法更好。
akira
2022-08-22 17:15:00 +08:00
@cccjh #14 楼 老凡尔赛。。 高数勉强及格的路过。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/874486

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX