leetCode60. 排列序列

news/2024/5/20 13:24:06

leetCode60. 排列序列


方法一:语法版,面试官不认可的方法:next_permutation函数

// 方法一:使用next_permutation函数,将某容器设置为当前按照字典序
// 的下一个全排列的内容
class Solution {
public:string getPermutation(int n, int k) {string res = "";for(int i = 1; i <= n; i++) res += to_string(i);for(int i = 0; i < k - 1; i++){next_permutation(res.begin(),res.end());}return res;}
};

方法二:面试官认可的办法

题解
在这里插入图片描述


代码

class Solution {
public:string getPermutation(int n, int k) {string res;vector<bool> st(10); // 因为n = 10for(int i = 0; i < n; i++){int fact = 1; // 阶乘for(int j = 1; j <= n - i - 1; j++){fact *= j;}for(int j = 1; j <= n; j++){if(!st[j]){ // 没使用过if(k > fact) k -= fact; // 当前位置不选,阶乘比fact小的才选else{res += to_string(j);st[j] = true;break; // 当前位置选好了,选择下一个位置该填写那个}}}}return res;}
};

http://www.mrgr.cn/p/21013262

相关文章

四数之和 ---- 双指针

题目链接 题目: 分析: 我们已经知道三数之和如何求取, 并去重了 三数之和 那么四数之和同理, 需要固定两个数a和b 然后用"双指针算法" , 只要两指针之和等于target-a-b即可同样对于四个数都要进行去重 代码: class Solution {public List<List<Integer>…

Vue入门到关门之前端引入

一、前端发展历史 1、什么是前端&#xff1f; 前端&#xff1a;针对浏览器的开发&#xff0c;代码在浏览器运行后端&#xff1a;针对服务器的开发&#xff0c;代码在服务器运行 2、前后端不分的时代 互联网发展的早期&#xff0c;前后端开发是一体的&#xff0c;前端代码是…

Git 使用教程(新手学习)

Git 是一种分布式版本控制系统,用于管理软件项目的源代码。它是由 Linux 之父 Linus Torvalds 开发的,并已经成为了现代软件开发领域中最流行的版本控制系统之一。 使用 Git 可以追踪代码的历史修改记录,方便团队协作、代码共享和代码重构。Git 的基本工作流程如下: 在开始…

jwt的思路

我们通常在项目中使用登录接口的时候,会利用jwt的token实现一个对其他接口的一个请求头这层的一个验证,那么如何去应用呢,正常来讲我们需要写出两个功能 1.jwt基本的加密和解密 2.jwt的一个拦截器,检验token请求头使用依赖 jdk1.8仅需<dependency><groupId>io.json…

一道编程题引发的C中关于数组、指针的思考

7-163 谷歌的招聘由一道编程题引发的C中关于数组、指针的思考先来看三种数组定义方式 #include <stdio.h> #include <stdlib.h>int main(){//方式1int array_1[4] = {1};//方式2,变长数组int n2;scanf("%d",&n2);int array_2[n2]; //使用变长数组pri…

【003_音频开发_基础篇_Linux进程通信(20种你了解几种?)】

003_音频开发_基础篇_Linux进程通信&#xff08;20种你了解几种&#xff1f;) 文章目录 003_音频开发_基础篇_Linux进程通信&#xff08;20种你了解几种&#xff1f;)创作背景Linux 进程通信类型fork() 函数fork() 输出 2 次fork() 输出 8 次fork() 返回值fork() 创建子进程 方…

力扣-498. 对角线遍历

1.题目 题目地址(498. 对角线遍历 - 力扣(LeetCode)) https://leetcode.cn/problems/diagonal-traverse/ 题目描述 给你一个大小为 m x n 的矩阵 mat ,请以对角线遍历的顺序,用一个数组返回这个矩阵中的所有元素。示例 1:输入:mat = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,…

在控制台实现贪吃蛇

在控制台实现贪吃蛇 前备知识Win32APICOORD这个结构体的声明如下&#xff1a;GetStdHandle 函数GetConsoleCursorInfo 函数SetConsoleCursorInfo 函数 SetConsoleCursorPosition 函数getAsyncKeyState 函数 控制台窗口的大小以及字符打印介绍控制台中的坐标宽字符及本地化介绍s…

MySQL第一次作业

解压完安装包 以管理员进入命令行 初始化并记住初始随机密码 创建服务名称 启动mysql 使用随机密码登录 修改密码 退出并重登服务器 MySQL创建数据库和表 创建数据库 创建表 1.进入数据库 创建表 向表中插入数据

启动 UE4编辑器报 加载 Plugin 失败

启动 UE4编辑器报 加载 Plugin 失败&#xff0c;报如下错误&#xff1a; Plugin ‘SteamVR’ failer to load because module ‘SteamVR’ could not be found. Please ensure the plugin is properly installed, otherwise consider disabling the plugin for this project. …

[ARC176F] Colorful Star

数数My Blogs [ARC176F] Colorful Star 感觉很考验想象力和计数基本功 QWQ。 首先考虑给定了局面之后如何进行判定。考虑把覆盖的过程倒着做:如果 \(i\) 旁边有和它颜色相同的棋子,那它就可以变成任意的颜色,然后要求最终能不能 \(n\) 种颜色都只剩一种。 然后这个还是不太本…

LayuiMini使用时候初始化模板修改(下载源码)

忘记加了 下载 地址 &#xff1a; layui-mini: layuimini&#xff0c;后台admin前端模板&#xff0c;基于 layui 编写的最简洁、易用的后台框架模板。只需提供一个接口就直接初始化整个框架&#xff0c;无需复杂操作。 LayuiMini使用时候初始化模板官网给的是&#xff1a; layu…

IIS中搭建.Net Core项目,步骤详解

一、准备服务器 1&#xff09;安装IIS 这个比较简单&#xff0c;百度一下就行 2&#xff09;安装 .NET Core 运行时 下载地址&#xff1a;下载 .NET(Linux、macOS 和 Windows) 因为我是本地开发&#xff0c;所以我下载的是SDK 安装成功之后显示如下&#xff1a; 检查是否安装…

WPF Prism

WPF编程-Prism世有伯乐,然后有千里马。千里马常有,而伯乐不常有。一、背景 Winform和WPF1. WinForms和WPF技术架构:WinForms是基于传统的窗体和控件的技术,使用的是类似于VB6时代的设计理念。 WPF是基于XAML(可扩展应用程序标记语言)的技术,允许更灵活、高度可定制化的用…

NIO之ByteBuffer

NIO中的ByteBuffer是缓冲区&#xff0c;其中有几个比较重要的属性capacity&#xff0c;position和limit。 capacity&#xff1a; 其中&#xff0c;capacity是缓冲区的容量大小&#xff0c;在分配内存空间后不会改变。 limit&#xff1a; limit是限制位置&#xff0c;在读写模…

SpringBoot集成minio前后端联调

基本配置 初始化项目 新建一个 SpringBoot 项目,集成 lombok mybatis-plus minio hutool-core(可有可无)。 新建一个数据表 attachement,用于存储文件上传后在 minio 中的位置。 drop table if exists attachment; create table attachment (id int auto_inc…

JMeter配置元件(一)

一 前言 环境: window 10 JMeter 5.3 记录一些常用的配置元件的用法 二 Configuration elements 配置元件 Configuration elements(配置元件)的作用就是给其后面的sampler(同作用域)准备好需要的数据,需要注意的是,配置原件总是比同作用域的sampler先执行 这有点像是定时…

Springboot集成minio前后端联调(后端对接minio)

基本配置 初始化项目 新建一个 SpringBoot 项目,集成 lombok mybatis-plus minio hutool-core(可有可无)。 新建一个数据表 attachement,用于存储文件上传后在 minio 中的位置。 drop table if exists attachment; create table attachment (id int auto_inc…