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

力扣 hot100 Day56

46. 全排列

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

//抄的
class Solution {
private:vector<vector<int>>result;vector<int> path;
public:void backtracking(vector<int>& nums,vector<bool>&used){if(path.size()==nums.size()){result.push_back(path);return;}for(int i=0;i<nums.size();i++){if (used[i] == true) continue;used[i] = true;path.push_back(nums[i]);backtracking(nums, used);path.pop_back();used[i] = false;}}vector<vector<int>> permute(vector<int>& nums) {vector<bool>used(nums.size(), false);backtracking(nums,used);return result;}
};

回溯算法

主要还是依托于递归,再递归中循环判断,实现多层的穷举

这里传递一个bool数组used用于判断在此次枚举中数字是否用过,终止条件是当前记录的路径长度是否等于原数组长度,回溯处理需要弹出path末尾元素并重置used对应元素。

http://www.xdnf.cn/news/16435.html

相关文章:

  • 深度学习入门(2)
  • J2EE模式---数据访问对象模式
  • JavaWeb项目(纯Servlet+JSP+前端三大件)入门(从0开始)
  • 传统框架与减震楼盖框架地震动力响应分析与有限元模拟
  • HashMap的线程安全性 vs ConcurrentHashMap
  • cacti漏洞CVE-2022-46169复现
  • JavaScript 中 let 在循环中的作用域机制解析
  • 智慧校园(智能出入口控制系统,考勤,消费机,电子班牌等)标准化学校建设,加速业务规模发展,满足学校、家长及学生对智能化、便捷化校园管理的需求清单如下
  • MyBatis-Plus极速开发指南
  • Ⅹ—6.计算机二级综合题11---14套
  • Spring 生态创新应用:现代架构与前沿技术实践
  • 2025年-ClickHouse 高性能实时分析数据库(大纲版)
  • GaussDB 数据库架构师修炼(九) 逻辑备份实操
  • 学习笔记《区块链技术与应用》第二天 共识机制
  • ESP32学习笔记_Peripherals(4)——MCPWM基础使用
  • cha的操作
  • LP-MSPM0G3507学习--11ADC之二双通道高速DMA采样
  • 人工智能——插值方法、边缘填充、图像矫正、图像掩膜、ROI切割、图像添加水印、图像噪点消除
  • 九联UNT413AS_晶晨S905L3S芯片_2+8G_安卓9.0_线刷固件包
  • 蓝光中的愧疚
  • MySQL索引背后的B+树奥秘
  • Power Compiler:漏电功耗、内部功耗、切换功耗及其计算方式(NLPM)
  • 网络安全-机遇与挑战
  • 【内网穿透】使用FRP实现内网与公网Linux/Ubuntu服务器穿透项目部署多项目穿透方案
  • 在幸狐RV1106板子上用gcc14.2本地编译安装ssh客户端/服务器、vim编辑器、sl和vsftpd服务器
  • Apache Ranger 权限管理
  • 【优选算法】链表
  • 局域网 IP地址
  • 卡尔曼滤波器噪声方差设置对性能影响的仿真研究
  • 亚马逊广告策略:如何平衡大词和长尾词的效果?