【代码随想录】刷题笔记Day33

news/2025/3/6 3:41:23/

前言

  • Day33虽说是一个月,但是从第一篇开始实际上已经过了8个月了,得抓紧啊

46. 全排列 - 力扣(LeetCode)

  • 前面组合就强调过差别了,这道题是排序,因此每次要从头到尾扫,结合used数组
  • class Solution {
    private:vector<vector<int>> res;vector<int> path;// vector<int> used(10);  // 私有中vector不支持初始化int used[7] = {};         // 私有中静态数组支持初始化void backtracking(vector<int>& nums){if(path.size() == nums.size()){res.push_back(path);return;}for(int i = 0; i < nums.size(); i++){  // 从头开始遍历if(used[i] == 1) continue;  // 数枝上跳过取过的元素 used[i] = 1;path.push_back(nums[i]);backtracking(nums);used[i] = 0;path.pop_back();}}
    public:vector<vector<int>> permute(vector<int>& nums) {backtracking(nums);return res;}
    };

 47. 全排列 II - 力扣(LeetCode)

  • 有重复元素,比前一题多两个步骤:排序 + 去重
  • class Solution {
    private:vector<vector<int>> res;vector<int> path;int used[9] = {};         // 私有中静态数组支持初始化void backtracking(vector<int>& nums){if(path.size() == nums.size()){res.push_back(path);return;}for(int i = 0; i < nums.size(); i++){  // 从头开始遍历if(used[i] == 1 || i > 0 && used[i - 1] == 0 && nums[i] == nums[i - 1]) continue;  // 去重,used[i - 1] == 0/1都可以通过,0更好(树层上去重)used[i] = 1;path.push_back(nums[i]);backtracking(nums);used[i] = 0;path.pop_back();}}
    public:vector<vector<int>> permuteUnique(vector<int>& nums) {sort(nums.begin(), nums.end());  // 先排序backtracking(nums);return res;}
    };

后言

  • 搞定咯,前面有组合的铺垫之后这两道都好做很多hhh,明天结束回溯(假装是Life is strange里的MAX伸出双手回溯时间)!

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

相关文章

【Java】面向对象程序设计 错题本

单选题 期中小测错题 1. Which specifier essentially declares a variable a global variable? A. protected B. static C. final D. default B global variable 是全局变量&#xff0c;也就是用 static 修饰的静态变量&#xff0c;因为它被所有实例所共享&#xff1b;…

Sentinel 监控数据持久化(mysql)

Sentinel 实时监控仅存储 5 分钟以内的数据&#xff0c;如果需要持久化&#xff0c;需要通过调用实时监控接口来定制&#xff0c;即自行扩展实现 MetricsRepository 接口&#xff08;修改 控制台源码&#xff09;。 本文通过使用Mysql持久化监控数据。 1.构建存储表&#xff08…

获取阿里云Docker镜像加速器

1、阿里云官网&#xff08;www.aliyun.com&#xff09;注册账号 2、打开“控制台首页” 控制台首页地址&#xff1a;https://home.console.aliyun.com/home/dashboard/ProductAndService 3、点击“概览->容器镜像服务 ACR” 4、打开“镜像工具->镜像加速器”页面&#x…

关于在x64系统下使用MSSQL导入导出工具读取Excel报错的一个坑

从Excel导入数据到MSSQL是个高频需求。很多人&#xff0c;包括我&#xff0c;习惯打开ssms&#xff0c;从数据库点右键&#xff0c;任务&#xff0c;导入数据唤起导入操作&#xff0c;然后发现报错“未在本地计算机上注册 Microsoft.ACE.OLEDB.16.0提供程序”。 这个坑倒是很好…

c++语言核心及进阶

核心编程 内存分区模型 根据c执行将内存划分为5个区域&#xff1a; 代码区&#xff0c;存放函数体的二进制&#xff0c;即CPU执行的机器指令&#xff0c;并且是只读的&#xff1b;常量区&#xff0c;存放常量&#xff0c;即程序运行期间不能被改变的量。全局区&#xff08;静…

移动机器人,开启智能柔性制造新篇章

智能制造是当今工业发展的必然趋势&#xff0c;而柔性制造则是智能制造的重要组成部分。在这个快速变革的时代&#xff0c;如何提高生产效率、降低成本、增强灵活性成为了制造业的关键挑战。富唯智能移动机器人应运而生&#xff0c;为柔性制造注入了新的活力。 基于富唯智能AI-…

13. 文档中生成标题

\maketitle 是 LaTeX 中用于生成标题的命令。在 LaTeX 文档的合适位置调用 \maketitle 将会根据你在文档中预先设置的标题、作者、日期等信息&#xff0c;生成文档的标题部分。 通常&#xff0c;在你的 LaTeX 源文件中&#xff0c;在使用 \title{}、\author{} 和 \date{} 命令…

前端新手Vue3+Vite+Ts+Pinia+Sass项目指北系列文章 —— 第四章 认识项目目录

系列文章目录&#xff08;点击查看&#xff09; 文章目录 系列文章目录&#xff08;点击查看&#xff09;前言一、node_modules文件夹二、public文件夹三、src文件夹四、.gitignore五、index.html六、package.json1、name、version、private 和 type 属性2、script 属性3、depe…