LeetCode46. 全排列(2024秋季每日一题 57)

给定一个不含重复数字的数组 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 < = n u m s . l e n g t h < = 6 1 <= nums.length <= 6 1<=nums.length<=6
− 10 < = n u m s [ i ] < = 10 -10 <= nums[i] <= 10 10<=nums[i]<=10
nums 中的所有整数 互不相同


思路:

  • dfs 遍历每个位置可能的数字
  • 对于每个位置,枚举还没被使用的数字
  • 在当前位置填充数字,并标记当前数字已经使用过,继续递归到下一层
  • 递归完后,回溯到之前的状态,继续枚举下一个数字
  • 如果所有位置都枚举了,则将最后一层的结果加到最终结果里
class Solution {
public:vector<vector<int>> res;vector<int> ans;vector<vector<int>> permute(vector<int>& nums) {dfs(nums, 0);return res;}void dfs(vector<int>& nums, int state){if(ans.size() == nums.size()){res.push_back(ans);return;}for(int i = 0; i < nums.size(); i++){if(state >> i & 1) continue;ans.push_back(nums[i]);dfs(nums, 1 << i | state);ans.pop_back();}}
};

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

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

相关文章

界面控件DevExpress WPF中文教程:Data Grid——卡片视图设置

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

MySQL 数据表常用编码类型解析

文章目录 MySQL 数据表常用编码类型解析一、字符集与编码简介二、MySQL 中的常用编码类型1. ASCII 编码2. Latin1 编码3. UTF-8 编码4. UTF-8mb4 编码5. UTF-16 编码 三、如何选择合适的编码类型四、编码转换和兼容性问题五、总结 MySQL 数据表常用编码类型解析 在 MySQL 数据库…

LLM训练”中的“分布式训练并行技术;分布式训练并行技术

目录 “LLM训练”中的“分布式训练并行技术” 分布式训练并行技术 数据并行 流水线并行:按阶段(stage)进行切分 张量并行 序列并行 多维混合并行 自动并行 MOE并行 重要的分布式AI框架 “LLM训练”中的“分布式训练并行技术” 随着深度学习技术的不断发展,特别是…

Ubuntu开启FTP与SSH服务

在配置开发环境时&#xff0c;这两个配置感觉是最有用的&#xff0c;开启FTP服务可以将远程linux上的文件映射到Windows上&#xff0c;不管是使用虚拟机还是嵌入式linux设备&#xff0c;特别在开发写代码的时候&#xff0c;映射到Windows上使用VS code打开编写比在linux上编写舒…

虚拟现实技术及其在教育领域的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 虚拟现实技术及其在教育领域的应用 虚拟现实技术及其在教育领域的应用 虚拟现实技术及其在教育领域的应用 引言 虚拟现实技术概述…

搜维尔科技:Varjo XR-4在教育科研领域应用

医学教育与培训&#xff1a; • 解剖学教学&#xff1a;传统的解剖学教学依赖于教科书、图片或实体标本&#xff0c;学生对于人体结构的空间关系理解存在一定难度。而使用Varjo头显&#xff0c;学生可以沉浸在虚拟的人体解剖环境中&#xff0c;全方位、多角度地观察人体的各个…

Java 源码中的 Unicode 逃逸问题,别被注释给骗了

背景 看了一段项目源码&#xff0c;定义了一个 List 对象&#xff0c;往该列表对象 add 的代码前面有注释符号&#xff0c;但是程序运行时列表中却存在对象&#xff0c;为什么呢&#xff1f;仔细看了一下&#xff0c;注释符号和 add 代码之间有一个特殊符号 \u000d&#xff0c…

基于python的机器学习(一)—— 基础知识(Scikit-learn安装)

目录 一、机器学习基础 1.1 机器学习概述 1.2 监督学习、无监督学习和强化学习 1.3 聚类、分类、回归、标注 1.3.1 聚类 1.3.2 分类 1.3.3 回归 1.3.4 标注 1.4 机器学习、人工智能和数据挖掘 1.5 机器学习的三个要素 二、Scikit-learn 机器学习库 2.1 Scikit-lea…

React 入门课程 - 使用CDN编程React

1. 第一个React 注意&#xff1a;在vscode里&#xff0c;使用Live Server来运行html文件。 index.html <html><head><link rel"stylesheet" href"index.css"><script crossorigin src"https://unpkg.com/react17/umd/react.de…

23isctf

where_is_the_flag 1.打开环境&#xff0c;上面有一句话木马&#xff0c;直接蚁剑上 flag1&#xff1a;蚁剑连接上就可以直接看见&#xff0c;FLAG1:Yunxi{d0c0 flag2:在根目录下就有 797a-4697- flag3&#xff1a; 在主页面有一个start.sh里面有提示信息 4dfe-9b48-50ff…

MySQL 【流程控制】函数

目录 1、CASE 语句用于流程控制中的多分支情况。 2、IF() 函数根据测试条件是否为真分别返回指定的值。 3、IFNULL() 函数&#xff0c;如果第一个参数为 NULL&#xff0c;返回第二个参数&#xff0c;否则返回第一个参数。 4、NULLIF() 函数根据两个参数是否相等决定返回 NUL…

【Rust中多线程同步机制】

Rust中多线程同步机制 多线程编程Rust中的多线程编程thread::spawnmove Rust中的线程间同步机制Rust线程间同步机制之MutexRust线程间同步机制之读写锁Rust线程同步机制之条件变量Rust中的信号量Rust中的Atomic Rust中线程间的数据传递总结 多线程编程 多线程编程&#xff0c;…

传统RAG流程;密集检索器,稀疏检索器:中文的M3E

目录 传统RAG流程 相似性搜索中:神经网络的密集检索器,稀疏检索器 密集检索器 BGE系列模型 text-embedding-ada-002模型 M3E模型 稀疏检索器 示例一:基于TF-IDF的稀疏检索器 示例二:基于BM25的稀疏检索器 稀疏检索器的特点与优势 传统RAG流程 相似性搜索中:神经…

黑马程序员linux学习【持续更新】

Linux基础 一、Linux简介 1.分类 不同领域的主流操作系统&#xff0c;主要分为下 几类&#xff1a;桌面操作系统、服务器操作系统、移动设备操作系统、嵌入式操作系统。 桌面操作系统 操作系统特点Windows用户数量最多MacOS操作体验好&#xff0c;办公人士首选Linux用户数…

2024强网杯Proxy

代码审计 首先分析go语言代码 package mainimport ("bytes""io""net/http""os/exec""github.com/gin-gonic/gin" )type ProxyRequest struct {URL string json:"url" binding:"req…

02多线程基础知识

目录 1. 线程与进程 进程&#xff08;Process&#xff09; 线程&#xff08;Thread&#xff09; 2. 并发和并行 并发&#xff08;Concurrency&#xff09; 并行&#xff08;Parallelism&#xff09; 3. CPU 调度 定义 类型 调度算法 上下文切换 4.线程间的状态流转…

Spring常用过滤器(Filter)-AuthorizationFilter

AuthorizationFilter&#xff1a;授权过滤器&#xff0c;用于执行访问控制决策。 1.1 定义与作用&#xff1a; 1.1.1 定义&#xff1a;AuthorizationFilter是ASP.NET MVC中用于安全性检查的过滤器&#xff0c;它通过实现IAuthorizationFilter接口来定义。该接口提供了一个OnAu…

java中函数式接口

函数式接口 supplier提供者 无中生有 () -> 结果 function 函数 一个参数一个结果 (参数) -> 结果 两个参数一个结果的 BiFunction (参数1,参数2) -> 结果 consumer 消费者 一个参数没有结果 (参数) -> void 两个参数的 BiConsumer (参数1,参数2) -…

np.clip函数

np.clip 是 NumPy 中的一个函数&#xff0c;用于将数组中的元素限制在指定的范围内&#xff08;即对数组的值进行截断&#xff09;。超出范围的值会被替换为指定的上下限值。 函数语法 numpy.clip(a, a_min, a_max, outNone, *, whereTrue)参数说明 a&#xff1a; 输入的数组&…

brainpy 动力学编程基础

文章参考&#xff1a; 《神经计算建模实战——基于brainpy》 吴思 【brainpy学习笔记】基础知识2(动力学模型的编程基础)-CSDN博客 Brainpy手册 文章目录 积分器&#xff1a;定义ODE函数数值积分方法 更新函数和动力系统计算介绍什么是brainpy.DynamicalSystem&#xff1f;如…