Leetcode 78. Subsets
来源:互联网 发布:淘宝网汽车坐垫套途观l 编辑:程序博客网 时间:2024/06/12 13:51
题目
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], []]
思路
思路为
起始subset集为:[]
添加S0后为:[], [S0]
添加S1后为:[], [S0], [S1], [S0, S1]
添加S2后为:[], [S0], [S1], [S0, S1], [S2], [S0, S2], [S1, S2], [S0, S1, S2]
红色subset为每次新增的。显然规律为添加Si后,新增的subset为克隆现有的所有subset,并在它们后面都加上Si。
代码
package leetcodeArray;import java.util.ArrayList;import java.util.Arrays;import java.util.Collection;import java.util.List;public class Leetcode78SubSet { @SuppressWarnings("unchecked") public List<List<Integer>> subsets(int[] nums) { List<List<Integer>> result = new ArrayList<>(); result.add(new ArrayList<Integer>()); //Arrays.sort(nums); for( int i:nums){ List<List<Integer>> tmp = new ArrayList<>(); for(List<Integer> sub:result){ List<Integer> a = new ArrayList<>(sub); a.add(i); tmp.add(a); } result.addAll( tmp); } return result; } public static void main(String[] args){ int[] nums = {1, 2, 3,4}; Leetcode78SubSet test = new Leetcode78SubSet(); System.out.println(test.subsets(nums)); }}
他山之玉
public List<List<Integer>> subsets(int[] nums) { List<List<Integer>> list = new ArrayList<>(); Arrays.sort(nums); backtrack(list, new ArrayList<>(), nums, 0); return list;}private void backtrack(List<List<Integer>> list , List<Integer> tempList, int [] nums, int start){ list.add(new ArrayList<>(tempList)); for(int i = start; i < nums.length; i++){ tempList.add(nums[i]); backtrack(list, tempList, nums, i + 1); tempList.remove(tempList.size() - 1); }}
阅读全文
0 0
- LeetCode 78. Subsets
- [LeetCode]78.Subsets
- LeetCode --- 78. Subsets
- [Leetcode] 78. Subsets
- [leetcode] 78.Subsets
- 【leetcode】78. Subsets
- Leetcode 78. Subsets
- 78. Subsets LeetCode
- [leetcode] 78. Subsets
- leetcode 78. Subsets
- Leetcode 78. Subsets
- LeetCode *** 78. Subsets
- LeetCode 78. Subsets
- LeetCode-78.Subsets
- leetcode 78. Subsets
- LeetCode - 78. Subsets
- [LeetCode] 78. Subsets
- 【题解】Leetcode.78.Subsets
- C++ String Toolkit Library (StrTk)
- I2C设备驱动编写,struct i2c_device_id,struct i2c_driver,i2c_add_driver,i2c_register_board_info
- 读一些博客之后冒出的想法
- 《笨办法学python》加分习题16——我的答案
- HDU
- Leetcode 78. Subsets
- MySql查询分页的几种方式例句
- hud 1298 T9(字典树 + DFS详解)
- spring的bean加载
- PL/SQL的配置
- 数据类型的取值范围
- (转载)yum和apt-get用法及区别
- 数据结构上机实验之二分查找
- 清空函数