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();
    }
}
相关推荐
覆东流12 小时前
Java开发环境搭建
java·开发语言·后端
阿洛学长12 小时前
VMware安装虚拟机教程(超详细)
java·linux·开发语言
coder Ethan12 小时前
Spring AI 入门:(3)快速搭建一个简单的问答助手
java·人工智能·spring
屋外雨大,惊蛰出没12 小时前
starter的创建与引用
java·stater
小同志0012 小时前
Spring Boot ⽇志概述(简单了解)
java·java-ee·日志
小马爱打代码12 小时前
SpringBoot + 延迟消息 + 时间轮:订单超时、优惠券过期等场景的高效实现方案
java·spring boot·后端
就叫_这个吧12 小时前
Java普通类、抽象类、接口的应用和区别
java·开发语言
梅孔立13 小时前
解决Nginx缓存不写入响应体问题:浏览器强制不缓存配置教程
java·开发语言·nginx·spring
方也_arkling13 小时前
【Java-Day18】API篇-Arrays
java·算法·排序算法
风味蘑菇干13 小时前
数据流:
java