LeetCode Permutation Sequence(求排列中的第k个排列是什么)
思路:使用阶乘,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个排列是什么)相关推荐
- 链表题目--2 求链表的中间结点 和 求链表中倒数第k个结点
求链表的中间结点 思路 一个走两步,一个走一步.一个走到尾,另外一个就走到了中间 /*** Definition for singly-linked list.* struct ListNode {* ...
- 互换矩阵任意两行(列),行列式变号——证明:互换排列中任意两个数,排列逆序数的奇偶性改变
关于排列的一个简单结论证明---互换排列中任意两个数,排列的逆序数奇偶性改变 一. 引言:在大学线性代数中,有关于行列式的一个常见的定理:*互换任意两行(列),行列式变号.*由行列式完全展开式可以很明 ...
- LeetCode 1985. 找出数组中的第 K 大整数(排序)
文章目录 1. 题目 2. 解题 1. 题目 给你一个字符串数组 nums 和一个整数 k . nums 中的每个字符串都表示一个不含前导零的整数. 返回 nums 中表示第 k 大整数的字符串. 注 ...
- python如何求列表中的众数_算法(LeetCode)六种方法求数组中的绝对众数
原题来自:LEETCODE. 感谢:http://t.cn/R61A67j 定义:绝对众数就是一个数在一组数中个数超过1/2的数. 比如给你一个长度为N的整形数组: [13,12,53,12,23,3 ...
- Leetcode Permutation Sequence
超时算法-排序dfs: class Solution { public: string s; string s1; int count;string getPermutation(int n, int ...
- LeetCode 2200. 找出数组中的所有 K 近邻下标
文章目录 1. 题目 2. 解题 1. 题目 给你一个下标从 0 开始的整数数组 nums 和两个整数 key 和 k . K 近邻下标 是 nums 中的一个下标 i ,并满足至少存在一个下标 j ...
- 求数据流中的第K大元素
题目 设计一个找到数据流中第K大元素的类(class).注意是排序后的第K大元素,不是第K个不同的元素. 你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含数 ...
- 【LeetCode笔记】215. 数组中的第K个最大元素(Java、快排、堆排、并发快排)
文章目录 题目描述 思路 & 代码 快排 基于 Fork / Join 的并发快排 针对 topK 的快排优化 堆排 基本堆排 结合题目的堆排 二刷 题目描述 大名鼎鼎的TOP K,主要考察排 ...
- 排列序列(第k个排列)
next_permutation,这道题用了这个函数后会变得十分之简单. next_permutation可以求出当前序列的下一个比它字典序大的序列 class Solution { public:s ...
最新文章
- 协方差及PCA降维计算
- FastCgi与PHP-fpm之间是个什么样的关系
- 学IT技术几个好的网站
- Python学习:快速搭建python环境
- 李楠宣布离职!“魅族三剑客”时代已逝去,前老板的回应却有点扎心
- 图解读写锁:pthead_rwlock_t
- web linux进程管理,详解Supervisor安装与配置(Linux/Unix进程管理工具)
- 计算机电气化,计算机在电气化系统的应用
- VLC和Qt结合编写流媒体rtsp播放器
- 新的服务器装系统前怎么分区吗,新硬盘使用之前要如何分区?硬盘分区常用方法详解...
- 【25】processing-视频(中文)
- 使用Hooks实现防抖节流 TS版本
- 解决Ubuntu 20.04无法播放网页音视频的问题
- 训练和推理阶段的BN和Dropout
- c语言飞机源代码,C语言写的飞机源码
- 猿人学12题超详细解题思路-入门级js(base64编码)
- java viewer 控件_插件制作过程记录(使用TreeViewer贡献视图)
- 大数据产业大有可为 得数据者的天下
- 计算机内部零件图,计算机绘制典型零件图的应用分析
- 快递停发区域查询接口
热门文章
- 更新源列表及设置方法
- PathFinding.js – 综合性的 JavaScript 路径查找库
- hrbust 1616 密码锁(广搜)
- C/C++变量存储区域
- python一点基础都没有的怎么办-为什么我会建议每个大学生都学一点python编程?...
- python使用符号 表示单行注释-Python注释符号(多行注释和单行注释)用法详解...
- python100个必背知识-python编程面试中必考的知识点,数据类型全解,笔记超全面...
- python详细安装教程环境配置-python环境配置详细步骤
- 2!=5 or 0在python中是否正确-python数据分析第二版:numpy
- python有趣的小项目-这10个Python项目超有趣!