【发布时间】:2012-02-13 23:44:17
【问题描述】:
我写了一个类似的问题,该问题已结束我想问不是代码,而是一个效率提示。我没有编码,但如果我在这里找不到任何好的提示,我会直接编写代码。我的问题:
假设您有一个函数 listNums,它以 a 作为下限,b 作为上限。
例如 a=120 和 b=400
我想用一条规则打印这些数字之间的数字。 120 的排列是 102,210,201 等。由于我有 120,我想跳过打印 201 或 210。
原因:上限可以达到 1020,减少排列将有助于运行时间。
再次只是询问效率提示。
【问题讨论】:
-
你有关于下限的信息吗?
-
应该打印
222吗? -
感谢您的评论。下限可以是 1 到 10^20-1 之间的任何值。因为上限可以是 1 到 10^20
-
@LightnessRacesinOrbit 只要
222没有被打印出来 -
如果 x 和 y 是您的数字并且 y 非常高,那么与 (y-x) 相比,您想要跳过的数字的数量很可能非常低。不知道如何提高效率!
标签: c++ performance algorithm