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();
    }
}
相关推荐
RFG20123 小时前
20、详解Dubbo框架:消费方如何动态获取服务提供方地址?【微服务架构入门】
java·人工智能·后端·微服务·云原生·架构·dubbo
zjttsh4 小时前
Linux下安装Redis
java
TimberWill5 小时前
SpringBoot整合Srping Security实现权限控制
java·spring boot·后端
期末考复习中,蓝桥杯都没时间学了6 小时前
力扣刷题19
算法·leetcode·职场和发展
Renhao-Wan6 小时前
Java 算法实践(四):链表核心题型
java·数据结构·算法·链表
踩坑记录7 小时前
递归回溯本质
leetcode
_codemonster7 小时前
JavaWeb开发系列(六)JSP基础
java·开发语言
万邦科技Lafite7 小时前
淘宝店铺所有商品API接口实战指南
java·数据库·mysql
好学且牛逼的马7 小时前
【Hot100|25-LeetCode 142. 环形链表 II - 完整解法详解】
算法·leetcode·链表
jjjxxxhhh1238 小时前
【加密】-AES与对称加密
java·服务器·网络