
1 roker OP 补充 n<10,期望得到的算法时间复杂度 O(n) |
2 Ljxtt 2022-04-19 02:26:20 +08:00 via Android 逆康托展开? |
3 jony83 2022-04-19 09:26:11 +08:00 自定义一个结构,存有 pass(经过的次数)和 end(以这个数为结尾的) |
4 jony83 2022-04-19 09:30:13 +08:00 一个结构是一个线,数据的起点是不包含任何数字开头的。是 1 开头的建立以 1 开头的线。是 2 开头的建立 2 开头的线。end 用来判断是否重复了 |
5 jony83 2022-04-19 09:35:40 +08:00 每一个节点有 0 个 9 的分支线。你从头开始遍历每个节点就是了 |
6 MoYi123 2022-04-19 14:31:56 +08:00 def sv(n, rank): ____ans = [] ____tmp = math.factorial(len(n)) ____for i in range(len(n)): ________tmp //= len(n) ________ans.append(n.pop(rank // tmp)) ________rank %= tmp ____return ans sv([0, 1, 2, 3, 4], 11) 就这样写吧, 需要注意一下 int 溢出的问题. n 很大的话数据结构换成 pb_ds. |