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();
    }
}
相关推荐
有梦想的攻城狮1 小时前
spring-cloud-alibaba-nacos-config使用说明
java·spring·nacos·springcloud·配置中心
独好紫罗兰1 小时前
洛谷题单3-P1720 月落乌啼算钱(斐波那契数列)-python-流程图重构
开发语言·算法·leetcode
Yan-英杰2 小时前
【百日精通JAVA | SQL篇 | 第三篇】 MYSQL增删改查
java·数据库·sql
Fantasydg4 小时前
DAY 37 leetcode 454--哈希表.四数相加
算法·leetcode·散列表
前端 贾公子4 小时前
LeetCode 2442:统计反转后的不同整数数量
算法·leetcode·职场和发展
矛取矛求4 小时前
C++ 标准库参考手册深度解析
java·开发语言·c++
cijiancao4 小时前
23 种设计模式中的解释器模式
java·设计模式·解释器模式
南七行者4 小时前
对模板方法模式的理解
java·设计模式·模板方法
麻芝汤圆4 小时前
MapReduce 的广泛应用:从数据处理到智能决策
java·开发语言·前端·hadoop·后端·servlet·mapreduce
努力的搬砖人.4 小时前
java如何实现一个秒杀系统(原理)
java·经验分享·后端·面试