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

LeetCode[中等] 78.子集

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

子集(幂集)。

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

思路 迭代法

每次遍历nums中的新的数,将其加到之前所有得到的set中,得到的新列表,加到结果列表中

public class Solution {public IList<IList<int>> Subsets(int[] nums) {IList<IList<int>> powerSet = new List<IList<int>>();powerSet.Add(new List<int>());foreach(int num in nums){int size = powerSet.Count;for(int i = 0; i < size; i++){IList<int> set = new List<int>(powerSet[i]);set.Add(num);powerSet.Add(set);}}return powerSet;}
}

复杂度分析

  • 时间复杂度:O(n×2n),其中 n 是数组 nums 的长度。子集个数是 2n,对于每个子集需要 O(n) 的时间添加到答案中,因此时间复杂度是 O(n×2n)。
  • 空间复杂度:O(n),其中 n 是数组 nums 的长度。每次新生成子集需要 O(n) 的空间。注意返回值不计入空间复杂度。


http://www.mrgr.cn/news/37883.html

相关文章:

  • Vue 3 技术体系
  • 基于Hive和Hadoop的电商消费分析系统
  • Meta震撼发布Llama3.2大规模模型
  • BufferQueue低延迟优化,以及SurfaceView帧率上限问题解决
  • 线性代数~行列式计算
  • 一款开源的通用PDF处理神器,功能强悍!
  • SpringBoot整合JPA实现CRUD详解
  • 【HTML|第1期】HTML5视频(Video)元素详解:从起源到应用
  • 鸿蒙开发(NEXT/API 12)【硬件(接入手写套件)】手写功能开发
  • 算法——冒泡排序
  • 【洛谷】AT_abc178_d [ABC178D] Redistribution 的题解
  • 手搓一个Agent#Datawhale 组队学习Task3
  • 1013. 将数组分成和相等的三个部分 数组切分
  • 物理学基础精解【30】
  • 用十万字解析《微积分(第三版)》
  • 如何注册和使用Disney+?Disney+会员账号可以合租?Disney+会员账号订阅购买使用教程
  • 并发编程---线程与进程
  • --杂项2--
  • ffmpeg 结合 opencv 显示ps流文件
  • MATLAB绘图基础9:多变量图形绘制