Java | Leetcode Java题解之第60题排列序列

题目:

题解:

java 复制代码
class Solution {
    public String getPermutation(int n, int k) {
        int[] factorial = new int[n];
        factorial[0] = 1;
        for (int i = 1; i < n; ++i) {
            factorial[i] = factorial[i - 1] * i;
        }

        --k;
        StringBuffer ans = new StringBuffer();
        int[] valid = new int[n + 1];
        Arrays.fill(valid, 1);
        for (int i = 1; i <= n; ++i) {
            int order = k / factorial[n - i] + 1;
            for (int j = 1; j <= n; ++j) {
                order -= valid[j];
                if (order == 0) {
                    ans.append(j);
                    valid[j] = 0;
                    break;
                }
            }
            k %= factorial[n - i];
        }
        return ans.toString();
    }
}
相关推荐
承渊政道11 分钟前
【优选算法】(实战体会位运算的逻辑思维)
数据结构·c++·笔记·学习·算法·leetcode·visual studio
禾小西17 分钟前
Spring AI :Spring AI的介绍
java·人工智能·spring
愤豆21 分钟前
05-Java语言核心-语法特性--模块化系统详解
java·开发语言·python
bksczm22 分钟前
文件流(fstream)
java·开发语言
NGC_661123 分钟前
Java 线程池阻塞队列与拒绝策略
java·开发语言
Frostnova丶23 分钟前
LeetCode 2573. 找出对应 LCP 矩阵的字符串
算法·leetcode·矩阵
小碗羊肉35 分钟前
【从零开始学Java | 第二十二篇】List集合
java·开发语言
m0_7167652336 分钟前
C++提高编程--STL常用容器(set/multiset、map/multimap容器)详解
java·开发语言·c++·经验分享·学习·青少年编程·visual studio
承渊政道44 分钟前
【优选算法】(实战推演模拟算法的蕴含深意)
数据结构·c++·笔记·学习·算法·leetcode·排序算法
qqty12171 小时前
springboot+mybaties项目中扫描不到@mapper注解的解决方法
java·spring boot·mybatis