Leetcode 46. 全排列 排列型回溯 C++实现

news2024/12/24 9:17:42

Leetcode 46. 全排列

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

算法:

创建二维返回数组 ans ,和临时数组 pathon_path

进入 dfs 函数,当 i==n 时,即已经排列完毕,则可以 return 。从 0n 遍历,如果没选过就加入 path 中,并且将 on_path 设置成 true 表示该数字已经被挑选。进入下一层递归。下一层递归完毕返回该层后,将该层挑选的数字所对应的 on_path 重置(再次设置成 false ,即未被挑选状态),恢复现场。

代码:

class Solution {
public:
    vector<vector<int>> permute(vector<int>& nums) {
        vector<vector<int>> ans;// 返回数组ans
        int n = nums.size();
        vector<int> path(n),on_path(n);// 临时数组path
        auto dfs = [&](auto &&dfs,int i){
            if(i == n){
                ans.emplace_back(path);
                return ;
            }
            for(int j = 0;j < n;j++){
                if(!on_path[j]){
                    path[i] = nums[j];
                    on_path[j] = true;
                    dfs(dfs,i+1);
                    on_path[j] = false;
                }
            }
        };
        dfs(dfs,0);// 递归入口
        return ans;
    }
};

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

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

相关文章

xshell 终端选中文本后自动执行ctrl+c

1. 退出钉钉后&#xff0c;解决问题&#xff0c; xshell终端可以正常使用了。 2. 修改钉钉设置来解决问题&#xff1a; 设置-> 通用-> AI助理 &#xff0c; 取消指定选项。

89.游戏安全项目-htdSdk安装

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;易道云信息技术研究院 上一个内容&#xff1a;88.游戏改造-UI修正保存到可执行文件 文件名为&#xff1a;黑兔sdk.zip 链接&#xff1…

Linux下UDP编程

一.概念介绍 1.socket 是什么&#xff1f; socket&#xff08;套接字&#xff09;本质上是一个抽象的概念&#xff0c;它是一组用于网络通信的 API&#xff0c;提供了一种统一的接口&#xff0c;使得应用程序可以通过网络进行通信。在不同的操作系统中&#xff0c;socket 的实…

Cobalt Strike 4.8 用户指南-第四节-监听器和基础设施管理

4.1、概述 任何行动的第一步都是建立基础设施。在 Cobalt Strike 中&#xff0c;基础设施由一台或多台团队服务器、重定向器以及指向团队服务器和重定向器的 DNS 记录组成。一旦团队服务器启动并运行&#xff0c;你将需要连接到它&#xff0c;并将其配置为接收来自受感染系统的…

呼叫中心系统数据分析报表统计

呼叫中心系统在客服职场中具有非常重要的作用&#xff0c;可以说如果呼叫中心系统瘫痪整个客服职场都无法工作。呼叫中心的数据统计分析功能对于企业来说也是非常重要的&#xff0c;能够快速帮助企业生成各种数据报表。 呼叫中心系统数据分析统计功能包括&#xff1a;工作量统计…

解锁AI力量:Gemini模型在Android中的技术应用

说在前面的话 大型语言模型&#xff08;LLM&#xff09;是近年来人工智能领域最令人瞩目的突破之一。它们拥有强大的语言理解和生成能力&#xff0c;能够完成各种任务&#xff0c;为我们打开了一个全新的世界。 以下是一些常见的使用场景&#xff1a; 1. 内容创作&#xff1…

如何为你的jar包上保险,防止别人反编译获取代码。Jar混淆全网最详细教学

写在前面:众所周知,Java程序不管使用maven或者Gradle进行构建,都可以获得一个可运行的jar包,比如现在我写了一个IDEA插件可以实现在IDEA中输入中文的名称之后自动变成是规范的英文类,那么在进行友好的分享时候,如何防止自己的jar依赖被别人翻版,就是本次给大家提供的教学…

Android 12系统源码_输入系统(二)InputManagerService服务

前言 上一篇我们简单介绍了Android系统输入事件的常见类型和事件的传递流程&#xff0c;输入事件的传递流程主要分三个部分&#xff0c;输入系统处理部分、WMS处理部分、View处理部分。 其中输入系统处理部分细分为输入子系统处理部分和InputManagerService处理部分&#xff…

嵌入式学习----IO多路复用

1.概念&#xff1a;多个IO复用一个进程 2.IO多路复用的一般实现&#xff1a; &#xff08;1&#xff09;创建文件描述符集合 &#xff08;2&#xff09;添加文件描述符到集合中 &#xff08;3&#xff09;通知内核开始监测 &#xff08;4&#xff09;根据返回的结果做对应…

TESSY创建单元测试或集成测试工程

我们以tessy5.1 IDE为例&#xff0c;给大家展示工程的创建过程。 1、打开TESSY5.1软件后&#xff0c;会弹出&#xff1a; 2、点击NEW Project后&#xff0c;会弹出&#xff1a; 3、接下来&#xff0c;就可以打开刚创建的工程&#xff1a; 4、进入到TESSY的主界面后&#xff0c…

清凉行动启航!汕头电信爱心翼站夏送清凉,每一份汗水都值得被温柔以待

8月中旬汕头电信濠江营业厅开展了“与你一起&#xff0c;清凉一夏”爱心翼站•夏送清凉活动。 在温馨的活动氛围中&#xff0c;爱心翼站的爱心大使与志愿者们&#xff0c;以生动有趣的小课堂&#xff0c;为小朋友们揭开了中暑这一话题的神秘面纱&#xff0c;细致阐述了其定义及…

在团队里对着干的人

在团队里对着干的人&#xff0c;踢走&#xff1b; 在团队里跟着干的人&#xff0c;培养&#xff1b; 在团队里帮着干的人&#xff0c;分钱&#xff1b; 在团队里领着干的人&#xff0c;分红。 这是规律也是规矩&#xff0c;一个真正的强者&#xff0c;是看他帮助了多少人&#…

CLIP微调方法总结

文章目录 前言1️⃣ Tip-Adapter论文和源码原理介绍 2️⃣Cross-modal Adaptation&#xff08;跨模态适应&#xff09;论文和源码原理介绍 3️⃣ FD-Align&#xff08;Feature Discrimination Alignment&#xff0c;特征判别对齐&#xff09;论文和源码原理介绍 总结 前言 本文…

教您用军团要塞2服务器开服联机教程

1、购买后登录服务器 进入控制面板后会出现正在安装的界面 2、下载连接工具 打开Steam库中搜索Source SDK Base 2013 Multiplayer并安装 3、下载游戏 以下三个链接均为同一个游戏 百度 通过百度网盘分享的文件&#xff1a;tf2classic.zip 链接&#xff1a;百度网盘 请输入提…

(最新)华为 2024 届秋招-硬件技术工程师-单板硬件开发—机试题—(共12套)(每套四十题)

&#xff08;最新&#xff09;华为 2024 届秋招-硬件技术工程师-单板硬件开发—机试题—&#xff08;共12套&#xff09;&#xff08;每套四十题&#xff09; 岗位——硬件技术工程师 岗位意向——单板硬件开发 真题题目分享&#xff0c;完整版带答案(有答案和解析&#xff0…

浅析WebRTC技术在智慧园区视频管理场景中的应用

随着科技的飞速发展&#xff0c;智慧园区作为城市智慧化的重要组成部分&#xff0c;正逐步成为现代化管理的重要方向。智慧园区的建设不仅涉及硬件设施的智能化升级&#xff0c;还离不开高效的视频管理和实时通信技术。在这一背景下&#xff0c;WebRTC&#xff08;Web Real-Tim…

BackdoorLLM:一个针对生成性LLMs后门攻击的全面基准测试

大型语言模型&#xff08;LLMs&#xff09;在从自然语言理解到机器翻译等一系列任务上取得了显著的突破性进展。例如&#xff0c;GPT-4模型展示了在生成类人文本和解决复杂问题方面的前所未有的能力。然而&#xff0c;近期的研究表明&#xff0c;LLMs存在一个关键的脆弱性&…

sqli-labs靶场通关攻略(41-45关)

第41关 这关我们使用工具sqlmap练习一下&#xff08;这里如果用本机的回环地址访问靶场的话只能在你的本机访问&#xff0c;因为我们是在虚拟机上进行扫描&#xff0c;所以不能使用127.0.0.1访问&#xff09; 进入虚拟机kali&#xff0c;打开终端 查库 sqlmap -u 网址 -- curr…

uniapp生活记账小程序

Springboot vue uniapp生活记账小程序&#xff0c;前端采用vue uni-app设计开发&#xff0c;后端采用 Springboot 开发前端对应的数据接口&#xff0c;首页显示生活账单信息&#xff0c;我的野蛮统计记账信息和微信登录状况。记账页面可以&#xff0c;根据不同类别的日常消费记…

MySQL集群技术4——MySQL路由

mysql-route MySQL 路由&#xff08;Routing&#xff09;通常指的是在 MySQL 架构中如何处理客户端请求和数据流向的问题。在 MySQL 中&#xff0c;路由可以涉及多种不同的场景和技术&#xff0c;包括但不限于反向代理、负载均衡、读写分离等。下面我将详细介绍这些场景和技术…