穷举vs暴搜vs深搜vs回溯vs剪枝

news/2025/2/14 4:21:14/

在这里插入图片描述

欢迎来到Cefler的博客😁
🕌博客主页:那个传说中的man的主页
🏠个人专栏:题目解析
🌎推荐文章:题目大解析(3)

在这里插入图片描述


目录

  • 👉🏻全排列
  • 👉🏻子集

👉🏻全排列

原题链接:全排列
在这里插入图片描述

mycode:

class Solution {
public:vector<vector<int>> ret;vector<int> path;bool check[7];//检查该位置是否被用过了,true说明被用过了 void dfs(vector<int>& nums){if(nums.size()==path.size())//说明此时已经组成一个序列了{ret.push_back(path);return;}for(int i = 0;i<nums.size();i++){if(check[i]==false)//此时还没被用过{path.push_back(nums[i]);check[i] = true;dfs(nums);//回溯清空现场,将dfs下层插入的元素pop掉path.pop_back();check[i] = false;}}}vector<vector<int>> permute(vector<int>& nums) {dfs(nums);return ret;}
};

👉🏻子集

原题链接:子集

mycode:

class Solution {
public:vector<vector<int>> ret;vector<int> part;void dfs(vector<int>& nums,int n){//可以选择插入或选择不插入for(int i = n;i<nums.size();i++){part.push_back(nums[i]);dfs(nums,++n);//回溯清理现场part.pop_back();}ret.push_back(part);}vector<vector<int>> subsets(vector<int>& nums) {int n = 0;dfs(nums,n);return ret;}
};

在这里插入图片描述
解法二
在这里插入图片描述
mycode:

class Solution {
public:vector<vector<int>> ret;vector<int> part;void dfs(vector<int>& nums,int n){//可以选择插入或选择不插入for(int i = n;i<nums.size();i++){part.push_back(nums[i]);dfs(nums,i+1);//回溯清理现场part.pop_back();}ret.push_back(part);}vector<vector<int>> subsets(vector<int>& nums) {int n = 0;dfs(nums,n);return ret;}
};

http://www.ppmy.cn/news/1290433.html

相关文章

如何在Linux中安装docker

1.首先卸载旧版本的Docker&#xff0c;若没有安装过Docker&#xff0c;可跳过本步。 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-e…

【authorized_keys配置及常见问题】

说明 authorized_keys 文件用于存储允许通过 SSH 访问特定用户帐户的公钥。当用户尝试通过 SSH 连接到服务器时&#xff0c;服务器会使用此文件中的公钥验证用户的身份。如果公钥匹配&#xff0c;用户将被允许访问。这有助于提高安全性&#xff0c;因为公钥认证比使用密码更安…

golang学习专栏

GOLANG专栏 Golang基础教程 Golang基础教程 Golang练手算法 Golang练手算法 Golang设计模式 Golang设计模式 Golang数据结构和算法 Golang数据结构和算法 Golang并发编程 Golang并发编程 ORM框架Gorm Golang ORM框架gorm Golang源码分析 Golang源码分析 MySQL教程 MySQ…

基于华为ENSP模拟器-vlan划分网络

需求 不连外网的内网。需求隔离故障和隔离广播风暴&#xff0c;并要保证网络的连通。 解决方案使用三层交互机&#xff0c;设置vlan用于隔离网络&#xff0c;并在三层交互机为网关保证各个vlan之间的通讯。 实现 使用三层交互机&#xff0c;设置vlan用于隔离网络&#xff0…

线性代数_对称矩阵

对称矩阵是线性代数中一种非常重要的矩阵结构&#xff0c;它具有许多独特的性质和应用。下面是对称矩阵的详细描述&#xff1a; ### 定义 对称矩阵&#xff0c;即对称方阵&#xff0c;是指一个n阶方阵A&#xff0c;其转置矩阵等于其本身&#xff0c;即A^T A。这意味着方阵A中的…

uniapp-H5项目的坑

先推荐个插件库-非常好用&#xff1a;https://ext.dcloud.net.cn/ 一、uniapp h5 适配pc端 1、问题&#xff1a;屏幕尺寸在400px~960px之间页面排版错乱 2、解决方法&#xff1a;在page.json文件中 "globalStyle": {"navigationStyle": "custom&quo…

船舶数据采集与分析在线能源监测解决方案

一、船舶在线能源监测应用前景 船舶在线能源监测在能源效率优化、故障诊断和预测维护、节能减排和环保监管、数据分析和决策支持以及自动化智能化等方面具有广阔的应用前景。随着船舶行业对能源管理和环保要求的不断提高&#xff0c;船舶在线能源监测技术将成为船舶运营和管理中…

TypeScrip快速入门

文章目录 TypeScrip基础语法变量的声明复合类型 条件控制if-elseswitch for&while循环常规遍历数组 函数基础样式箭头函数可选参数 面向对象枚举、接口继承 模块开发导出导入 TypeScrip TypeScript是微软开发的开源编程语言&#xff0c;在JavaScript的基础上拓展了一些语法…