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();
    }
}
相关推荐
book123_0_99几秒前
Spring Boot 条件注解:@ConditionalOnProperty 完全解析
java·spring boot·后端
NCIN EXPE2 分钟前
使用Springboot + netty 打造聊天服务(一)
java·spring boot·后端
爱学习的小囧12 分钟前
ESXi性能历史怎么监控?2种方法,图形化+命令行全覆盖
java·linux·运维·服务器·网络·esxi·esxi8.0
逻辑驱动的ken22 分钟前
Java高频面试考点场景题11
java·深度学习·面试·职场和发展·高效学习
学习3人组36 分钟前
面向对象编程:反射(Reflection)原理与应用详解
java
斯维赤40 分钟前
每天学习一个小算法:快速排序
java·python·学习·算法·排序算法
天码-行空1 小时前
深入拆解 Tomcat 系统架构:连接器如何设计
java·系统架构·tomcat
程序员牛奶1 小时前
Project Loom:让 Java 高并发变得更简单
java·后端
NE_STOP1 小时前
Redis--简介及配置文件详解
java
XiYang-DING1 小时前
【Java EE】volatile关键字
java·单例模式·java-ee