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

leetcode日记(77)子集Ⅱ

不知道为什么看到这道题就很头痛……

其实只要掌握nums不包含重复元素的情况下的代码就行了。

若nums不能包含重复元素,那么使用回溯很容易就能写出来:

class Solution {
    void hs(vector<int> v,int x,vector<int> r,vector<vector<int>>& result){
        if(x==v.size()){
            result.push_back(r);
            r.clear();
            return ;
        }
        r.push_back(v[x]);
        hs(v,x+1,r,result);
        r.pop_back();
        hs(v,x+1,r,result);
    }
public:
    vector<vector<int>> subsetsWithDup(vector<int>& nums) {
        vector<int> r;
        vector<vector<int>> result;
        hs(nums,0,r,result);
        return result;
    }
};

一开始我在回溯的函数里鬼使神差写了一个循环导致结果多出一大堆……以后可千万不能犯这样的低级错误了…………

接着就是考虑nums中能有重复元素的情况,这种情况下若重复元素上一个相同元素没有选上,那么以后的这个元素也不能选,知道这个原理就可以将nums排序,让重复元素互相挨着,每次不选上一个元素,若下一个元素还是这个元素就跳过不取。

class Solution {
    void hs(vector<int> v,int x,vector<int> r,vector<vector<int>>& result){
        if(x==v.size()){
            result.push_back(r);
            r.clear();
            return ;
        }
        r.push_back(v[x]);
        hs(v,x+1,r,result);
        r.pop_back();
        for(int i=x;i<v.size()-1;i++){
            if(v[x]==v[x+1]) x++;
        }
        hs(v,x+1,r,result);
    }
public:
    vector<vector<int>> subsetsWithDup(vector<int>& nums) {
        vector<int> r;
        vector<vector<int>> result;
        sort(nums.begin(),nums.end());
        hs(nums,0,r,result);
        return result;
    }
};

相关文章:

  • vue3:初学 vue-router 路由配置
  • 备份docker的数据库文件信息
  • PMP项目管理—资源管理篇—1.规划资源管理
  • 【Python爬虫】爬取公共交通路网数据
  • 大语言模型 智能助手——既能生成自然语言回复,又能在必要时调用外部工具获取实时数据
  • 【零基础到精通Java合集】第二十二集:CMS收集器详解(低延迟的里程碑)
  • 将 MySQL 数据高效导入 Redis
  • JAVA安全—Shiro反序列化CB1链source入口sink执行gadget链
  • Python解决“找出整形数组中占比超过一半的数”问题
  • AI介入软件测试过程可行的环节和帮助机制
  • 科普:“图相似性”与“文本相似性”
  • 【音视频】ffmpeg命令分类查询
  • LabVIEW设备长期稳定运行程序设计要点
  • MySQL安装教程
  • 【数据结构】二叉树总结篇
  • 二百八十五、华为云PostgreSQL——建分区表并设置主键
  • *动态规划(4)
  • 精讲坐标轴系统(Axis)
  • 实现浏览器交互Ai Web Ui-本地化部署的deepseek + Ollama + Page Assist
  • 开源表单、投票、测评平台部署教程
  • 网站设计ui/找推网
  • 网站开发实习日记/百度问一问人工客服怎么联系
  • 聚美网站开发开题报告/网络营销环境宏观微观分析
  • 电子商务加盟网站建设/新网站怎么做优化
  • 网站建设太原/网站建设是什么
  • 做网站建设有前途那/长沙网站提升排名