思路:使用阶乘,f(n) =  f(n -1) * n,在确定第i个数是,用k/f(n - 1 - i)

代码如下:

public class Solution
{public String getPermutation(int n, int k) {int[] fac = new int[n + 1];fac[0] = 1;for (int i = 1; i <= n; i++) {fac[i] = fac[i - 1] * i;}List<Integer> num = new ArrayList<>();StringBuilder sb = new StringBuilder();for (int i = 1; i<= n; i++) num.add(i);k--;for (int i = 1; i <= n; i++) {int index = k / fac[n - i];sb.append(String.valueOf(num.get(index)));num.remove(index);k -= index * fac[n - i];}return sb.toString();}
}

LeetCode Permutation Sequence(求排列中的第k个排列是什么)相关推荐

  1. 链表题目--2 求链表的中间结点 和 求链表中倒数第k个结点

    求链表的中间结点 思路 一个走两步,一个走一步.一个走到尾,另外一个就走到了中间 /*** Definition for singly-linked list.* struct ListNode {* ...

  2. 互换矩阵任意两行(列),行列式变号——证明:互换排列中任意两个数,排列逆序数的奇偶性改变

    关于排列的一个简单结论证明---互换排列中任意两个数,排列的逆序数奇偶性改变 一. 引言:在大学线性代数中,有关于行列式的一个常见的定理:*互换任意两行(列),行列式变号.*由行列式完全展开式可以很明 ...

  3. LeetCode 1985. 找出数组中的第 K 大整数(排序)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个字符串数组 nums 和一个整数 k . nums 中的每个字符串都表示一个不含前导零的整数. 返回 nums 中表示第 k 大整数的字符串. 注 ...

  4. python如何求列表中的众数_算法(LeetCode)六种方法求数组中的绝对众数

    原题来自:LEETCODE. 感谢:http://t.cn/R61A67j 定义:绝对众数就是一个数在一组数中个数超过1/2的数. 比如给你一个长度为N的整形数组: [13,12,53,12,23,3 ...

  5. Leetcode Permutation Sequence

    超时算法-排序dfs: class Solution { public: string s; string s1; int count;string getPermutation(int n, int ...

  6. LeetCode 2200. 找出数组中的所有 K 近邻下标

    文章目录 1. 题目 2. 解题 1. 题目 给你一个下标从 0 开始的整数数组 nums 和两个整数 key 和 k . K 近邻下标 是 nums 中的一个下标 i ,并满足至少存在一个下标 j ...

  7. 求数据流中的第K大元素

    题目 设计一个找到数据流中第K大元素的类(class).注意是排序后的第K大元素,不是第K个不同的元素. 你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含数 ...

  8. 【LeetCode笔记】215. 数组中的第K个最大元素(Java、快排、堆排、并发快排)

    文章目录 题目描述 思路 & 代码 快排 基于 Fork / Join 的并发快排 针对 topK 的快排优化 堆排 基本堆排 结合题目的堆排 二刷 题目描述 大名鼎鼎的TOP K,主要考察排 ...

  9. 排列序列(第k个排列)

    next_permutation,这道题用了这个函数后会变得十分之简单. next_permutation可以求出当前序列的下一个比它字典序大的序列 class Solution { public:s ...

最新文章

  1. 协方差及PCA降维计算
  2. FastCgi与PHP-fpm之间是个什么样的关系
  3. 学IT技术几个好的网站
  4. Python学习:快速搭建python环境
  5. 李楠宣布离职!“魅族三剑客”时代已逝去,前老板的回应却有点扎心
  6. 图解读写锁:pthead_rwlock_t
  7. web linux进程管理,详解Supervisor安装与配置(Linux/Unix进程管理工具)
  8. 计算机电气化,计算机在电气化系统的应用
  9. VLC和Qt结合编写流媒体rtsp播放器
  10. 新的服务器装系统前怎么分区吗,新硬盘使用之前要如何分区?硬盘分区常用方法详解...
  11. 【25】processing-视频(中文)
  12. 使用Hooks实现防抖节流 TS版本
  13. 解决Ubuntu 20.04无法播放网页音视频的问题
  14. 训练和推理阶段的BN和Dropout
  15. c语言飞机源代码,C语言写的飞机源码
  16. 猿人学12题超详细解题思路-入门级js(base64编码)
  17. java viewer 控件_插件制作过程记录(使用TreeViewer贡献视图)
  18. 大数据产业大有可为 得数据者的天下
  19. 计算机内部零件图,计算机绘制典型零件图的应用分析
  20. 快递停发区域查询接口

热门文章

  1. 更新源列表及设置方法
  2. PathFinding.js – 综合性的 JavaScript 路径查找库
  3. hrbust 1616 密码锁(广搜)
  4. C/C++变量存储区域
  5. python一点基础都没有的怎么办-为什么我会建议每个大学生都学一点python编程?...
  6. python使用符号 表示单行注释-Python注释符号(多行注释和单行注释)用法详解...
  7. python100个必背知识-python编程面试中必考的知识点,数据类型全解,笔记超全面...
  8. python详细安装教程环境配置-python环境配置详细步骤
  9. 2!=5 or 0在python中是否正确-python数据分析第二版:numpy
  10. python有趣的小项目-这10个Python项目超有趣!