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();
    }
}
相关推荐
沐欣工作室_lvyiyi2 分钟前
基于SpringBoot的博物馆预约系统设计与实现(论文+源码)
java·spring boot·后端·计算机毕业设计
代码什么用1 小时前
LeetCode-42. 接雨水
算法·leetcode
程序员清风1 小时前
Java 智能体开发:从对话接口到任务执行
java·人工智能·python
一 乐2 小时前
博客管理系统|基于springboot + vue博客管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·毕设
QuZhengRong2 小时前
【Spring】后端接收的请求参数多了一个逗号的处理办法
java·后端·spring
ZealSinger2 小时前
Go1.25容器感知GOMAXPROCS避限流
java·开发语言
cxoptics2 小时前
LBO 会不会潮解?存储、镀膜、日常使用注意事项?
java
SL_staff2 小时前
非研发人员搭业务逻辑?先认清这3个可视化编程分水岭
java
王闯写bug2 小时前
tomcat老版本下载tomcat8.5下载
java·tomcat