博客
关于我
LeetCode078——子集
阅读量:214 次
发布时间:2019-02-28

本文共 941 字,大约阅读时间需要 3 分钟。

我的LeetCode代码仓:

原题链接:

题目描述:

知识点:递归、回溯

思路:回溯法穷举数组所有子集

本题和虽然题目不尽相同,但思路却是一模一样。

时间复杂度是O(2 ^ n),其中n为nums数组的长度。空间复杂度即递归深度,是O(n)。

JAVA代码:

public class Solution {    private List
> listList; public List
> subsets(int[] nums) { listList = new ArrayList<>(); for (int i = 0; i <= nums.length; i++) { subSets(nums, new ArrayList<>(), i); } return listList; } private void subSets(int[] nums, List
list, int n){ if(list.size() == n){ listList.add(new ArrayList<>(list)); return; } for (int i = 0; i < nums.length; i++) { if(list.contains(nums[i]) || (!list.isEmpty() && list.get(list.size() - 1) > nums[i])){ continue; } list.add(nums[i]); subSets(nums, list, n); list.remove(list.size() - 1); } }}

LeetCode解题报告:

 

你可能感兴趣的文章
mysql条件查询
查看>>
MySQL架构与SQL的执行流程_1
查看>>
MySQL架构与SQL的执行流程_2
查看>>
MySQL架构介绍
查看>>
MySQL架构优化
查看>>
MySQL查看数据库相关信息
查看>>
MySQL查看表结构和表中数据
查看>>
MySQL查询优化:LIMIT 1避免全表扫描
查看>>
MySQL查询优化之索引
查看>>
mysql查询储存过程,函数,触发过程
查看>>
mysql查询总成绩的前3名学生信息
查看>>
MySQL查询数据库所有表名及其注释
查看>>
mysql查询语句能否让一个字段不显示出来_天天写order by,你知道Mysql底层执行原理吗?
查看>>
MySQL死锁套路:一次诡异的批量插入死锁问题分析
查看>>
Mysql死锁问题Deadlock found when trying to get lock;try restarting transaction
查看>>
MySQL添加用户、删除用户与授权
查看>>
Mysql添加用户并授予只能查询权限
查看>>
mysql添加表注释、字段注释、查看与修改注释
查看>>
MySQL灵魂16问,你能撑到第几问?
查看>>
MySQL灵魂拷问:36题带你面试通关
查看>>