当前位置: 首页 > news >正文

LeetCode 60. 排列序列

给出集合 [1,2,3,...,n],其所有元素共有 n! 种排列。

按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:

  1. "123"
  2. "132"
  3. "213"
  4. "231"
  5. "312"
  6. "321"

给定 n 和 k,返回第 k 个排列。

示例 1:

输入:n = 3, k = 3
输出:"213"

示例 2:

输入:n = 4, k = 9
输出:"2314"

示例 3:

输入:n = 3, k = 1
输出:"123"

提示:

  • 1 <= n <= 9
  • 1 <= k <= n!
class Solution {
public:string getPermutation(int n, int k) {if(n==1) return "1";if(n==2){if(k==1) return "12";else return "21";}int num[10];int s=1;int a[10];memset(num,0,sizeof(num));for(int i=1;i<=n;i++){s=s*i;}for(int i=1;i<=n-2;i++){int g=s/(n-i+1);int z=k/g;k=k%g;s=g;if(k!=0){z++;}else{k=g;}int x=0;for(int j=1;j<=n;j++){if(num[j]==0){x++;if(x==z){a[i-1]=j;num[j]=1;break;}}}}int q0=0,q1=0;for(int i=1;i<=n;i++){if(num[i]==0){if(q0==0) q0=i;else q1=i;}}if(k==1){a[n-2]=min(q0,q1);a[n-1]=max(q0,q1);}else{a[n-1]=min(q0,q1);a[n-2]=max(q0,q1);}string p;for(int i=0;i<n;i++){p=p+to_string(a[i]);}return p;}
};

http://www.dtcms.com/a/395448.html

相关文章:

  • springboot2.7.11 + quartz2.3.2,单机,集群实战,增删改查任务,项目一启动就执行任务
  • Hive 调优
  • 王晨辉:RWA注册登记平台赋能资产数字化转型
  • 周末荐读:美 SEC 推出加密货币 ETF 上市标准,Base 发币在即
  • HTTP API获取 MQTT上报数据
  • Apache HTTP基于端口的多站点部署完整教程
  • 新网站如何让百度快速收录的方法大全
  • 企业非结构化数据治理与存储架构优化实践探索
  • dagger.js 实现嵌套路由导航:对比 React Router 的另一种思路
  • React自定义同步状态Hook
  • 系统架构设计能力
  • 安卓图形系统架构
  • 《ZooKeeper终极指南》
  • 软考 系统架构设计师系列知识点之杂项集萃(154)
  • 算法提升之单调数据结构-单调栈与单调队列
  • 【Linux】初识进程(Ⅰ)
  • VMware登录后没有网络解决方法
  • Infoseek助力品牌公关升级:从成本中心到价值引擎
  • AR 运维系统与 MES、EMA、IoT 系统的融合架构与实践
  • 牛客周赛 Round 110
  • AutoMQ x Lightstreamer: Kafka 金融数据实时分发新方案
  • Vulkan原理到底学什么
  • 第14讲 机器学习的数据结构
  • MATLAB的宽频带频谱感知算法仿真
  • Adobe Fresco下载教程Adobe Fresco 2025保姆级安装步骤(附安装包)
  • MQTT 服务质量 (QoS) 深度解析
  • MySQL EXPLAIN 中的七种 type 类型详解
  • NestJS认识
  • 6.MySQL索引的数据结构【面试题】
  • 【vLLM 最新版v0.10.2】docker运行openai服务与GGUF量化使用方式