LeetCode:第k个排列

作者: 一萍之春 | 来源:发表于2019-02-26 00:01 被阅读19次

第k个排列


题目叙述:

给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。
按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:
"123"
"132"
"213"
"231"
"312"
"321"
给定 n 和 k,返回第 k 个排列。
说明:

  • 给定 n 的范围是 [1, 9]。
  • 给定 k 的范围是[1, n!]。
示例:

示例1:
输入: n = 3, k = 3
输出: "213"
示例2:
输入: n = 4, k = 9
输出: "2314"

解题思路:

这一题的解题思路主要这样的,当我们n=1的时候会有1种情况,n=2会有2种情况,n=3会有6种情况,n=n会有(n!)种情况。当我们选择第k个序列的时候相当于我们的首位可以是第k/(n-1)!个数,依次第二位将是k%(n-1)!/(n-2)!个数······等等,因此我们将1~n用一个List集合存储起来,取出一个数后将其在List移出。直到List移空。时间复杂度为O(n)。

代码实现:
class Solution {
    public String getPermutation(int n, int k) {
        int[] nums = new int[n];
        List<Integer> help = new ArrayList();
        StringBuffer res=new StringBuffer();
        int num = 1;
        for (int i = 1; i < n+1; i++) {
            num *= i;
            nums[i - 1] = num;
            help.add(i);
        }
        k--;
        for (int i = n - 2; i > -1; i--) {
            res.append(help.get(k/nums[i]));
            help.remove(help.get(k/nums[i]));
            k%=nums[i];
        }
        res.append(help.get(0));
        return res.toString();
    }
}

相关文章

  • LeetCode:第k个排列

    第k个排列 题目叙述: 给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况...

  • [LeetCode]60、第K个排列

    题目描述 给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。 按大小顺序列出所有排列情况,并一一标记...

  • LeetCode60-第k个排列

    给出集合[1,2,3,…,n],其所有元素共有n! 种排列。 按大小顺序列出所有排列情况,并一一标记,当n= 3 ...

  • LeetCode60(第K个排列)

    题目: 给出集合[1,2,3,…,n],其所有元素共有n! 种排列。按大小顺序列出所有排列情况,并一一标记,当n ...

  • 第k个排列

    https://leetcode-cn.com/explore/interview/card/bytedance/...

  • 输出数组的全排列

    思想: n 个元素数组全排列 = 第 1 个前缀 + 后 n - 1 个元素全排列 输出第 k 个元素之后的全排列...

  • LeetCode 力扣 60. 第k个排列

    题目描述(中等难度) 又是一道全排列的题,之前在31题,46题,也讨论过全排列问题的一些解法。这道题的话,是给一个...

  • 子集、全排列、第k个排列

    子集输出 全排列输出 存在重复数字的全排列 给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。 按大...

  • 排列类算法问题大总结

    全排列 带重复元素的排列 下一个排列 上一个排列 第 k 个排列 排列序号 排列序号II 全排列 给定一个数字列表...

  • LeetCode热门100题算法和思路(day7)

    LeetCode215 数组中的第k个最大元素 题目详情 给定整数数组 nums 和整数 k,请返回数组中第 k ...

网友评论

    本文标题:LeetCode:第k个排列

    本文链接:https://www.haomeiwen.com/subject/nljnyqtx.html