博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode78——Subsets
阅读量:3977 次
发布时间:2019-05-24

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

文章作者:Tyan

博客:  |   | 

1. 问题描述

Given a set of distinct integers, nums, return all possible subsets.

Note: The solution set must not contain duplicate subsets.

For example,

If nums = [1,2,3], a solution is:

[  [3],  [1],  [2],  [1,2,3],  [1,3],  [2,3],  [1,2],  []]

2. 求解

递归法

这道题类似于数组的组合问题,可以用递归法求解。N个数中每个数都分为要与不要两种情况,求解的过程如下图。递归的边界条件为N个数都遍历完了。

递归过程

public class Solution {    public static List
> result = new ArrayList
>(); public List
> subsets(int[] nums) { result.clear(); result.add(new ArrayList
()); combination(nums, 0, new ArrayList
()); return result; } public void combination(int[] nums, int index, List
list) { if(index == nums.length) { return; } combination(nums, index + 1, new ArrayList
(list)); list.add(nums[index]); result.add(list); combination(nums, index + 1, new ArrayList
(list)); }}

转载地址:http://ucwui.baihongyu.com/

你可能感兴趣的文章
Python网页抓取urllib,urllib2,httplib[2]
查看>>
Python urllib2递归抓取某个网站下图片
查看>>
JS清空多文本框|文本域
查看>>
linux常用命令(操作命令)
查看>>
Linux一些经典书籍
查看>>
apache启动报错(98)Address already in use: make_sock: could not bind to address [::]:80
查看>>
linux kill用法、killall、pkill、xkill
查看>>
Python笔记——排序算法的实现
查看>>
jQuery数据显示插件整合实现代码
查看>>
python时区设置——pytz模块
查看>>
用datetime和pytz来转换时区
查看>>
python解决导出excel文件时中文文件名乱码
查看>>
Django操作NOSQL(MongoDB)数据库
查看>>
Failed to load JavaHL Library
查看>>
linux学习方法
查看>>
linux中nohup命令的用法
查看>>
vim代码智能提示功能及相关配置
查看>>
linux常用命令——ps
查看>>
linux常用命令——lsof
查看>>
nginx安装手册
查看>>