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

LeetCode 刷题【90. 子集 II】

90. 子集 II

自己做

解:递归选取

class Solution {
private:vector<vector<int>> res;public:void collect_set(vector<int>& nums, vector<int> combine, int i, bool gain){              //i为当前的下标,gain标记上个元素是否取过if(i == (int)nums.size()){res.push_back(combine);return;}//不取collect_set(nums, combine, i + 1, false);//取combine.push_back(nums[i]);if(i > 0 && nums[i] == nums[i - 1] && gain)                                         //相同元素且上个元素取过collect_set(nums, combine, i + 1, true);else if(i == 0 || i > 0 && nums[i] != nums[i - 1])                                  //不同元素无所谓collect_set(nums, combine, i + 1, true);}vector<vector<int>> subsetsWithDup(vector<int>& nums) {sort(nums.begin(), nums.end());collect_set(nums, vector<int>(), 0, true);return res;}
};

看题解

把递归的变量掏出来

class Solution {
private:vector<vector<int>> res;vector<int> combine;public:void collect_set(vector<int>& nums, int i, bool gain){              //i为当前的下标,gain标记上个元素是否取过if(i == (int)nums.size()){res.push_back(combine);return;}//不取collect_set(nums, i + 1, false);//取if(i > 0 && nums[i] == nums[i - 1] && !gain)                                         //相同元素且上个元素没取过,直接返回return;combine.push_back(nums[i]);collect_set(nums, i + 1, true);combine.pop_back();}vector<vector<int>> subsetsWithDup(vector<int>& nums) {sort(nums.begin(), nums.end());collect_set(nums, 0, true);return res;}
};

http://www.dtcms.com/a/398119.html

相关文章:

  • Spring Boot启动报错:Failed to configure a DataSource 全面解析与解决方案
  • MongoDB源码delete分析观察者getOpObserver()->onDelete
  • 企业网站模板htmlwordpress cos 配置
  • ACL 2025 Time-LlaMA 大语言模型高效适配时间序列预测
  • 2025开发者云服务器评测:AWS, Vercel, Railway该如何选?
  • 金融数据库--下载全市场股票日线行情数据
  • HTML `<meter>` 标签:原生度量衡指示器,直观展示百分比、评分等量化数据
  • 平安养老险广西分公司 | 开展金融知识公益宣教活动
  • 威海北京网站建设怎么做网站推广世界杯
  • php的网站模板下载如何修改自己的网站标题
  • VS Code 格式化配置优先级与作用机制(不含ESlint)
  • python+springboot+uniapp微信小程序“美好食荐”系统 美食推荐 菜谱展示 用户互动 评论收藏系统
  • 微信小程序页面滚动到指定位置
  • 抢占2025SEO先机:九大趋势洞察与实战行动路线图
  • Ubuntu 安装 Maven 私服 Nexus
  • maven install和package 有什么区别
  • 关于maven编译没把resources资源包含进target目录
  • 网站开发文档合同wap712c
  • [Maven 基础课程]11_Windows 安装 Maven 私服 Nexus
  • LinuxC++项目开发日志——基于正倒排索引的boost搜索引擎(3——通过cppjieba库建立索引模块)
  • 早报库|深圳奔向全球“消费级3D打印第一城”;苹果持续扩招增材制造人才;乌军前线大量使用3D打印地雷
  • 爬虫数据存储:MongoDB 在电商采集中的应用
  • 【STM32项目开源】STM32单片机厨房安全监测系统系统
  • 在 ARM64 Ubuntu 20.04 上部署 Mailu 邮件服务器:深度排查 Docker Bridge 网络通信失败问题
  • ubuntu 20 安装python
  • Golang语言基础篇003_数组、切片、map详解
  • 传统网站开发下载 wordpress语言包
  • flowable的监听器顺序
  • 连接局域网、主干网和虚拟局域网
  • 【保姆级】| 基于Docker的dify部署流程