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

78.子集90.子集2

78.子集

思路

又回到了组合的模板中来,这道题相比于前面的题省去了递归终止条件。大差不差。

代码

class Solution {List<List<Integer>> result =new ArrayList<>();LinkedList<Integer> list=new LinkedList<>();public List<List<Integer>> subsets(int[] nums) {backTracking(nums,0);return result;}public void backTracking(int[] nums,int startIndex){result.add(new ArrayList<>(list));for (int i=startIndex;i<nums.length;i++){list.add(nums[i]);backTracking(nums,i+1);list.removeLast();}}
}

90.子集2

思路

增加了个对重复的判断操作,好像之前组合也做过类似的,数组排序+去重。

去重就简单将前后两个数字进行比较,若相等则跳过,唯一需要注意的地方就是每层(每个位置)第一次循环的数字不进行去重。

代码

class Solution {List<List<Integer>> result =new ArrayList<>();LinkedList<Integer> list=new LinkedList<>();public List<List<Integer>> subsetsWithDup(int[] nums) {Arrays.sort(nums);backTracking(nums,0);return result;}public void backTracking(int[] nums,int startIndex){result.add(new ArrayList<>(list));for (int i=startIndex;i<nums.length;i++){if (i>startIndex && nums[i]==nums[i-1]) continue; //去重list.add(nums[i]);backTracking(nums,i+1);list.removeLast();}}
}
http://www.lryc.cn/news/327390.html

相关文章:

  • 基于Ubuntu的Linux系统安装jsoncpp开发包过程
  • 葵花卫星影像应用场景及数据获取
  • Jenkins升级中的小问题
  • Apache Hive的基本使用语法(二)
  • 基于单片机16位智能抢答器设计
  • idea默认代码生成脚本修改
  • StarRocks实战——多点大数据数仓构建
  • jmeter总结之:Regular Expression Extractor元件
  • 快速上手Spring Cloud 七:事件驱动架构与Spring Cloud
  • leetcode 1997.访问完所有房间的第一天
  • 【InternLM 实战营第二期笔记】书生·浦语大模型全链路开源体系及InternLM2技术报告笔记
  • Netty对Channel事件的处理以及空轮询Bug的解决
  • 【PostgreSQL】- 1.1 在 Debian 12 上安装 PostgreSQL 15
  • 第4章.精通标准提示,引领ChatGPT精准输出
  • HTTP状态 405 - 方法不允许
  • 题目 2898: 二维数组回形遍历
  • Git命令上传本地项目至github
  • 机器学习之决策树现成的模型使用
  • 【python分析实战】成本:揭示电商平台月度开支与成本结构占比 - 过于详细 【收藏】
  • 新网站收录时间是多久,新建网站多久被百度收录
  • 通过Caliper进行压力测试程序,且汇总压力测试问题解决
  • LabVIEW比例流量阀自动测试系统
  • 安卓U3D逆向从Assembly-CSharp到il2cpp
  • 计算机网络——30SDN控制平面
  • Obsidian插件-高亮块(Admonition)
  • jHipster 之 webflux-前端用EventSource处理sse变成了批量处理而非实时处理
  • 原型链-(前端面试 2024 版)
  • 网络套接字补充——UDP网络编程
  • 自动化测试 —— Pytest fixture及conftest详解
  • Scala第十四章节(隐式转换、隐式参数以及获取列表元素平均值的案例)