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

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.xdnf.cn/news/11975.html

相关文章:

  • SimpleDateFormat 和 DateTimeFormatter 的异同
  • OpenCV C/C++ 视频播放器 (支持调速和进度控制)
  • MySQL 事务的 ACID 四大特性及其实现原理
  • 【echarts】堆叠柱形图
  • ubuntu自定义服务自动启动
  • Python绘图库及图像类型
  • SARIMA时间序列分析:三大模型对比
  • AWS中国区IAM相关凭证自行管理策略(只读CodeCommit版)
  • 【通用技巧】使用 AI 进行技术写作:使用 AI 写作助手编写技术内容的方法
  • MySQL 核心知识点解析
  • 高防IP可以防护什么攻击类型?企业网络安全的第一道防线
  • 找到每一个单词+模拟的思路和算法
  • Elasticsearch的写入性能优化
  • 常见优化器Optimizer总结
  • 网络编程之TCP编程
  • shell脚本一步完成批量创建删除Linux用户
  • 3D动画在微信小程序的实现方法
  • C语言数据结构笔记3:Union联合体+结构体取8位Bool量
  • 109页PPT华为流程模块L1-L4级梳理及研发采购服务资产5级建模
  • 如何通过RL真正提升大模型的推理能力?NVIDIA提出长期强化学习训练框架ProRL
  • Learning a Discriminative Prior for Blind Image Deblurring论文阅读
  • nest实现前端图形校验
  • Linux磁盘管理 - RAID
  • macOS 上使用 Homebrew 安装redis-cli
  • 我们来学zookeeper -- 集群搭建
  • Monorepo架构: 项目管理模式对比与考量
  • 详解ZYNQ中的 RC 和 EP
  • 解决idea编译运行项目时间长的问题
  • 深入理解C#中的Web API:构建现代化HTTP服务的完整指南
  • Redis 集群批量删除key报错 CROSSSLOT Keys in request don‘t hash to the same slot