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();
    }
}
相关推荐
鸽鸽程序猿2 小时前
【JavaEE】【SpringCloud】环境与工程搭建
java·spring cloud·java-ee
我居然是兔子8 小时前
异常练习:在试错中吃透Java异常处理的底层逻辑
java·开发语言
元亓亓亓8 小时前
LeetCode热题100--416. 分割等和子集--中等
算法·leetcode·职场和发展
CC.GG9 小时前
【C++】STL容器----unordered_map和unordered_set的使用
java·数据库·c++
Overt0p9 小时前
抽奖系统(4)
java·spring boot·tomcat
想做后端的小C11 小时前
Java:接口回调
java·开发语言·接口回调
爱学习的小可爱卢11 小时前
JavaEE进阶——Spring核心设计模式深度剖析
java·spring·设计模式
毕设源码-钟学长11 小时前
【开题答辩全过程】以 个性化电影推荐网站的设计与实现为例,包含答辩的问题和答案
java·spring boot
C++业余爱好者11 小时前
Power Job 快速搭建 及通信机制介绍
java
YGGP11 小时前
【Golang】LeetCode 32. 最长有效括号
算法·leetcode