力扣---46.全排列

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。

示例 1:

输入:nums = [1,2,3]
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

示例 2:

输入:nums = [0,1]
输出:[[0,1],[1,0]]

示例 3:

输入:nums = [1]
输出:[[1]]

提示:

  • 1 <= nums.length <= 6
  • -10 <= nums[i] <= 10
  • nums 中的所有整数 互不相同
class Solution {
public:vector<vector<int>> permute(vector<int>& nums) {sort(nums.begin(), nums.end());vector<vector<int>> ans;ans.push_back(nums);int sum = 1;int num = nums.size();while(num >= 1){sum *= num;num--;}for(int j=0;j<sum-1;j++){int n = nums.size();  int i = n - 2;  // 从右向左找到第一个不满足升序的位置  while (i >= 0 && nums[i] >= nums[i + 1]) {  i--;  }if (i >= 0) {  // 从右向左找到第一个大于nums[i]的元素  int j = n - 1;  while (j > i && nums[j] <= nums[i]) {  j--;  }  // 交换nums[i]和nums[j]  swap(nums[i], nums[j]);  }// 将i+1及其之后的部分翻转成升序  reverse(nums.begin() + i + 1, nums.end());ans.push_back(nums);}return ans;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/872450.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前后端工作重点小结

前端和后端的区分 前端&#xff08;Frontend&#xff09; 和 后端&#xff08;Backend&#xff09; 是 Web 开发中的两个主要部分&#xff0c;它们有不同的职责和技术栈。 前端&#xff08;Frontend&#xff09; 职责&#xff1a;负责用户界面的呈现和用户交互。主要语言&am…

Qt中While循环等待

QEventLoop的方法&#xff1a; .h文件 #ifndef CONTROLLER_H #define CONTROLLER_H#include <QWidget> #include <QPushButton> #include <QVBoxLayout> #include <QEventLoop> #include <QTimer> #include <QDebug>class Controller : …

如何通过网络快速搜寻到自己的STM32设备

目录 一、问题概述 二、解决思路 三、代码实现 1.创建任务 2.UDP广播接收 一、问题概述 以前一直用RS232串口修改设备配置信息&#xff0c;但是现场施工人员的232线太细&#xff0c;经常容易断掉&#xff0c;这次准备用网口去修改&#xff0c;遇到了一个问题&#xff0c;…

C语言学习笔记[24]:循环语句while②

getchar()的使用场景 int main() {char password[20] {0};printf("请输入密码&#xff1a;");//输入 123456 后回车scanf("%s", passwoed);//数组名本身就是数组地址printf("请确认密码&#xff1a;Y/N");int ch getchar();if(Y ch)printf(&…

区块链学习05-web3中solidity和move语言

Solidity 和 Move 语言的比较&#xff1a;Web3 开发中的两种选择 Solidity 和 Move 都是用于开发区块链平台智能合约的编程语言。它们具有一些相似之处&#xff0c;但也存在一些关键差异。 相似之处: Solidity 和 Move 都是图灵完备语言&#xff0c;这意味着它们可以表达计算…

搜维尔科技:Xsens DOT 可穿戴传感器介绍及示例应用演示

Xsens DOT可穿戴传感器介绍及示例应用演示 搜维尔科技&#xff1a;Xsens DOT 可穿戴传感器介绍及示例应用演示

JavaEE:Spring Web简单小项目实践二(用户登录实现)

学习目的&#xff1a; 1、理解前后端交互过程 2、学习接口传参&#xff0c;数据返回以及页面展示 1、准备工作 创建SpringBoot项目&#xff0c;引入Spring Web依赖&#xff0c;添加前端页面到项目中。 前端代码&#xff1a; login.html <!DOCTYPE html> <html lang&…

关于window配置gitlab和gitee平台共存

今天使用gitlab拉取代码突然提示 gitgitlab.xxx.com: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). 以为是ssh公钥没有配置好&#xff0c;遂又进行了一番配置&#xff0c;实际上并不是这个问题造成的&#xff0c;但还是想记录一下步骤&#xff0c;以…

<Rust><GUI>rust语言GUI库tauri体验:前、后端结合创建一个窗口并修改其样式

前言 本文是rust语言下的GUI库&#xff1a;tauri来创建一个窗口的简单演示&#xff0c;主要说明一下&#xff0c;使用tauri这个库如何创建GUI以及如何添加部件、如何编写逻辑、如何修改风格等&#xff0c;所以&#xff0c;这也是一个专栏&#xff0c;将包括tauri库的多个方面。…

【前端】原生实现图片的放大与缩放

需求 点击图片&#xff0c;出现一个蒙版和图片&#xff0c;双指捏合可以使图片放大或缩小。 使用前端框架是svelte&#xff0c;但是不影响&#xff0c;功能都是JS实现。 代码 相关定义&#xff1a; import { onMount, afterUpdate, onDestroy } from svelte;let imgDetailRef…

搜维尔科技:Varjo XR-4开箱测评,里面都有啥?

Varjo XR-4开箱测评&#xff0c;里面都有啥&#xff1f; 搜维尔科技&#xff1a;Varjo XR-4开箱测评&#xff0c;里面都有啥&#xff1f;

mysql数据库转PostgreSQL,批量处理xml中的sql,字段加上双引号脚本。

最近在当机器人给大写字段加上双引号,人都麻木了…这么多怎么加,这应该是机器人该干的事,不行动手写脚本,本来用python写的脚本,为了方便同事用,就用js改写了一下,样式不好看,能用就行。 全部代码如下: <!DOCTYPE html> <html lang="zh-CN"> &…

小阿轩yx-zookeeper+kafka群集

小阿轩yx-zookeeperkafka群集 消息队列(Message Queue) 是分布式系统中重要的组件 通用的使用场景可以简单地描述为 当不需要立即获得结果&#xff0c;但是并发量又需要进行控制的时候&#xff0c;差不多就是需要使用消息队列的时候。 消息队列 什么是消息队列 消息(Mes…

【HarmonyOS开发】弹窗交互(promptAction )

实现效果 点击按钮实现不同方式的弹窗showToast showDialog showActionMenu 代码实现 1.引入’ohos.promptAction’ import promptAction from ohos.promptAction;2.通过promptAction 实现系统既定的弹窗 import promptAction from ohos.promptAction;Entry Component st…

鸿蒙语言基础类库:【@system.geolocation (地理位置)】

地理位置 说明&#xff1a; 从API Version 7 开始&#xff0c;该接口不再维护&#xff0c;推荐使用新接口[ohos.geolocation]。本模块首批接口从API version 3开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 导入模块 import geolocation from …

C++客户端Qt开发——常用控件QWidget

四、常用控件 属性 作用 enabled 设置控件是否可使用.true 表⽰可用&#xff0c;false 表示禁用 geometry 位置和尺寸&#xff0c;包含x,y,width,height四个部分 其中坐标是以⽗元素为参考进行设置的. windowTitle 设置widget标题 windowIcon 设置widget图标 windowO…

【STM32 IDE】使用STM32CubeIDE创建一个工程

关于IDE的下载安装和环境配置这里暂且不介绍&#xff0c;我们直接使用STM32F407ZGT6创建工程。 这里需要注意两点&#xff1a; 创建工程时&#xff0c;默认使用最新版本的固件包&#xff08;HAL库&#xff09;&#xff0c;好像还不让更改。如果本地电脑位置没有该版本的包&…

自动驾驶,革了谁的命

概述 从AI 的出现开始&#xff0c;到现在已经慢慢地开始改变着周遭的世界。 从对话聊天&#xff0c;到当前的看图识文&#xff0c;图片转动效等等&#xff0c;慢慢地在与实体结合后&#xff0c;其发挥的威力是巨大的。 科技将会是改变世界的核心驱动力之一&#xff0c;已经深…

html超文本传输协议

在今天的Web开发学习中&#xff0c;我掌握了一些HTML和CSS的基础知识&#xff0c;下面我将分享我的学习笔记&#xff0c;帮助大家快速构建一个简单的Web界面。 一、HTML基础标签 1. 网站头 使用<title>标签定义网页的标题。 html <title>我的第一个网页</t…

注意力机制中三种掩码技术详解和Pytorch实现

注意力机制是许多最先进神经网络架构的基本组成部分&#xff0c;比如Transformer模型。注意力机制中的一个关键方面是掩码&#xff0c;它有助于控制信息流&#xff0c;并确保模型适当地处理序列。 在这篇文章中&#xff0c;我们将探索在注意力机制中使用的各种类型的掩码&…