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

LeetCode热题100--78. 子集

题目

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

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

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

示例 2:
输入:nums = [0]
输出:[[],[0]]

题解

class Solution {List<Integer> t = new ArrayList<Integer>();List<List<Integer>> ans = new ArrayList<List<Integer>>();public List<List<Integer>> subsets(int[] nums) {int n = nums.length;for (int mask = 0; mask < (1 << n); ++mask) {t.clear();for (int i = 0; i < n; ++i) {if ((mask & (1 << i)) != 0) {t.add(nums[i]);}}ans.add(new ArrayList<Integer>(t));}return ans;}
}

解析

  1. List t = new ArrayList(); 和 List<List> ans = new ArrayList<List>();: 创建两个空的ArrayList,用于存储子集和最终结果。

  2. 2-6: subsets方法定义了一个循环,遍历所有可能的子集,即从0到2^n(其中n是nums数组的大小)的二进制掩码。对于每一个二进制掩码,它创建一个新的ArrayList t 和副本的新 ans ArrayList。

  3. 7-11: 这两个for循环遍历nums数组中的每个元素及其对应的二进制位置(mask & (1 << i))。如果在该位置上有值(即与(1 << i)的位运算操作不为0),将nums[i]添加到ArrayList t 中。

  4. 12: ans.add(new ArrayList(t));: 对于每一个二进制掩码,都将当前子集 t 添加到结果列表 ans 中。这里利用了Java的构造函数去复制一个新的ArrayList来创建一个独立的实例。

  5. 13: return ans;: for循环结束后,我们得到了所有可能的子集(包括单独的元素和空集合)并将它们存储在ans列表中,最后返回该答案。

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

相关文章:

  • 攻击链重构的技术框架
  • 商务网站的特点做外贸的人经常逛的网站
  • 网站绑定两个域名怎么做跳转贵阳网络推广公司哪家强
  • 关于sqlite
  • 【C语言】深入理解指针(三)
  • BHYRA:当金融的信任,开始由收益来证明
  • 安装paddle_ocr踩坑(使用PP-OCRv5_server_rec)
  • ClickHouse查看数据库、表、列等元数据信息
  • 场外衍生品系统架构解密:TRS收益互换与场外个股期权的技术实现与业务创新
  • PQ:软件的UX - 快速分析并提议改进
  • MoonBit Pearls Vol.15: 使用 MoonBit 和 Wassette 构建安全的 WebAssembly 工具
  • 旅游机票网站建设2022年时事新闻摘抄
  • 【Linux网络】基于UDP的Socket编程,实现简单聊天室
  • IntelliJ IDEA 快捷键全解析与高效使用指南
  • openGauss 实战手册:gsql 常用命令、认证配置与运维工具全解
  • 如何入门Appium-移动端自动化测试框架?
  • 解决 Tomcat 跨域问题 - Tomcat 配置静态文件和 Java Web 服务(Spring MVC Springboot)同时允许跨域
  • 【ZeroRange WebRTC】KVS WebRTC 示例中的 HTTP 通信安全说明
  • 软件测试之单元测试知识总结
  • 如何更改asp网站自定义产品顺序网站推广优化建设方案
  • 手机网站优点linux服务器wordpress
  • HPC性能新纪元!AWS Hpc7g实例: Graviton3E芯片开启200Gbps超算之旅
  • LeetCode 422 - 有效的单词方块
  • windows docker 配置镜像
  • 《数据结构:从0到1》-11-字符串与模式匹配
  • 【轴承故障诊断】基于SE-TCN和SE-TCN-SVM西储大学轴承故障诊断研究(Matlab代码实现)
  • 容器云质量加固方案
  • HarmonyOS OCR文字识别应用开发:深度指南与分布式实践
  • C语言 | LeetCode 414. 第三大的数
  • 360优化大师官方网站网站运营成本