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

【LeetCode】78.子集

题目

给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。

解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。

示例 1:

输入:nums = [1,2,3]
输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]

示例 2:

输入:nums = [0]
输出:[[],[0]]

提示:

  • 1 <= nums.length <= 10
  • -10 <= nums[i] <= 10
  • nums 中的所有元素 互不相同

解答

源代码

class Solution {public List<List<Integer>> subsets(int[] nums) {List<List<Integer>> res = new ArrayList<List<Integer>>();List<Integer> combine = new ArrayList<Integer>();dfs(res, combine, nums, 0);return res;}public void dfs(List<List<Integer>> res, List<Integer> combine, int[] nums, int index) {res.add(new ArrayList<Integer>(combine));if (index == nums.length) {return;}for (int i = index; i < nums.length; i++) {combine.add(nums[i]);dfs(res, combine, nums, i + 1);combine.remove(combine.size() - 1);}}
}

总结

经典的回溯算法,这道题要另外注意一下不能到索引结束再添加元素,要每次更新索引都需要添加元素。

http://www.lryc.cn/news/99430.html

相关文章:

  • 认可功能介绍 - 技术声誉靠认可
  • EtherNet/IP转CAN网关can协议标准
  • 解决代理IP负载均衡与性能优化的双重挑战
  • 深度探索 Elasticsearch 8.X:function_score 参数解读与实战案例分析
  • 测牛学堂:软件测试之andorid app性能测试面试知识点总结(二)
  • 尚医通06:数据字典+EasyExcel+mongodb
  • 【前端知识】React 基础巩固(三十二)——Redux的三大原则、使用流程及实践
  • [NLP]使用Alpaca-Lora基于llama模型进行微调教程
  • Linux Shell 脚本编程学习之【第5章 文件的排序、合并与分割 (第四部分之cut命令) 】
  • php-golang-rpc jsonrpc和php客户端tivoka/tivoka包实践
  • flutter 打包iOS安装包
  • 二进制重排
  • 【Linux后端服务器开发】MAC地址与其他重要协议
  • WebGPU入门
  • React Dva项目中.roadhogrc.mock.js直接自动导入mock目录下所有文件方式
  • 跨境独立站如何应对恶意网络爬虫?
  • C# SourceGenerator 源生成器初探
  • 网络安全/信息安全—学习笔记
  • 【Visual Studio】无法打开包括文件: “dirent.h”: No such file or directory
  • asp.net MVC markdown编辑器
  • 论文浅尝 | 预训练Transformer用于跨领域知识图谱补全
  • 算法工程师-机器学习面试题总结(2)
  • 低成本32位单片机空调内风机方案
  • 读发布!设计与部署稳定的分布式系统(第2版)笔记25_互联层之路由和服务
  • AI面试官:LINQ和Lambda表达式(二)
  • Mysql原理篇--第二章 索引
  • 保姆级系列教程-玩转Fiddler抓包教程(1)-HTTP和HTTPS基础知识
  • 【iOS】单例、通知、代理
  • 从Vue2到Vue3【五】——新的组件(Fragment、Teleport、Suspense)
  • PostgreSQL——sql文件导入