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();
    }
}
相关推荐
FYKJ_2010几秒前
springboot网上购书商城---附源码15749
java·spring boot·后端·python·spark·django·php
青 春 记 忆8 分钟前
LeetCode 234. 回文链表|Python 解法详解
python·leetcode·链表
LayZhangStrive13 分钟前
Java IDEA - 各种快捷键设置汇总(提高工具使用效率)
java·idea·设置·快捷键
snow@li31 分钟前
Java:事务管理全景梳理/解决业务系统数据一致性问题
java
额额额对了38 分钟前
Linux 进程管理详解:从概念到实战
java·服务器·前端
evans在进步38 分钟前
Spring Boot 启动流程与 @SpringBootApplication 核心原理详解
java·spring boot·后端
许彰午41 分钟前
11-rawSql占位符替换
java·低代码·架构
码匠许师傅1 小时前
【C++ 面试真题】聊聊 C++ 的类型特征( type_traits)
java·c++·面试
java1234_小锋1 小时前
Spring框架的创始人开发了一个Java AI智能体框架
java·人工智能·spring
夏天拐跑了西瓜1 小时前
Eureka注册中心——单机与高可用集群搭建
java·spring cloud·微服务·eureka