摘要:
题目: 求按字典序生成的第k个排列。 思路一: 先生成所有全排列,然后按字典序排序,取第k个即可。事实证明完全不行,超时。 思路二: 康托展开的逆运算。关于康托展开的有关内容,参考这位兄弟的博客。(n年前本科的时候似乎上课讲过。。。)思路还是比较简单的,如果比较熟悉的话。 阅读全文
摘要:
题目: 给出n, k。求从1~n里面取k个的不同组合。(不能有重复的) 乍一看,这不就和全排列很像吗?不就是= k时记录然后return就好了。但是如果按排列做的话,会有很多重复的。如 [1, 4] 和 [4, 1] 在排列中算不一样的,但在组合中是一样的,和元素出现的顺序无关。所以如果按排列做,会 阅读全文
摘要:
题目:给定一组数,给出所有可能的全排列(次序无所谓)。 非常标准的回溯解法。为了避免重复添加元素,有两种处理方式: 1. 把添加过的元素交换到数组末尾。(如注释部分所示) 2. 把添加过的元素交换到数组前端。 阅读全文