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

day63—回溯—全排列(LeetCode-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 中的所有整数 互不相同

解决方案:

1、每一位都可与其他位交换,实现全排列

2、每一位的交换情况完成后,都需要还原到原样,以便下一位的交换递归遍历

函数源码:

class Solution {
public:void back(vector<int>&nums,int level,vector<vector<int>>&ans){if(level == nums.size()-1){ans.push_back(nums);return;}for(int i=level;i<nums.size();i++){cout<<nums[i]<<"-"<<nums[level]<<endl;swap(nums[i],nums[level]);back(nums,level+1,ans);swap(nums[i],nums[level]);}}vector<vector<int>> permute(vector<int>& nums) {vector<vector<int>> ans;back(nums,0,ans);return ans;}
};
http://www.lryc.cn/news/2400978.html

相关文章:

  • (二)stm32使用4g模块(移远ec800k)连接mqtt
  • 防火墙iptables项目实战
  • webpack继续学习
  • Scrapy爬虫框架Spiders爬虫脚本使用技巧
  • PowerBI企业运营分析—全动态盈亏平衡分析
  • docker的基本命令
  • 【运维实战】Rsync将一台主Web服务器上的文件和目录同步到另一台备份服务器!
  • 实时通信RTC与传统直播的异同
  • Python-正则表达式(re 模块)
  • AgenticSeek 本地部署教程(Windows 系统)
  • 基于 qiankun + vite + vue3 构建微前端应用实践
  • VR教育:开启教育新时代的钥匙
  • 机器学习:逻辑回归与混淆矩阵
  • 20250602在荣品的PRO-RK3566开发板的Android13下打开HDMI显示
  • 【学习记录】快速上手 PyQt6:设置 Qt Designer、PyUIC 和 PyRCC 在 PyCharm中的应用
  • AI在网络安全领域的应用现状和实践
  • DrissionPage 异常处理实战指南:构建稳健的网页自动化防线
  • 鸿蒙任务项设置案例实战
  • TDengine 的 AI 应用实战——运维异常检测
  • DHCP与DNS的配置
  • 使用Plop.js高效生成模板文件
  • Vue框架2(vue搭建方式2:利用脚手架,ElementUI)
  • mac 设置cursor (像PyCharm一样展示效果)
  • SpringCloudAlibaba微服务架构
  • Java高级 | 【实验三】Springboot 静态资源访问
  • C语言_预处理详解
  • 将前后端分离版的前端vue打包成EXE的完整解决方案
  • 物联网协议之MQTT(一)基础概念和设备
  • 「Java教案」Java程序的构成
  • 还原Windows防火墙