Subsets
来源:互联网 发布:netstat -an 看端口号 编辑:程序博客网 时间:2024/06/07 00:18
Subsets
Given a set of distinct integers, S, return all possible subsets.
Note:
- Elements in a subset must be in non-descending order.
- The solution set must not contain duplicate subsets.
For example,
If S = [1,2,3]
, a solution is:
[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]Java代码:
public class Solution { public List<List<Integer>> subsets(int[] S) {List<List<Integer>> result = new ArrayList<>();Arrays.sort(S);int len = S.length;for (int i = 1; i <= len; i++) {result.addAll(combineUTL(S, 0, len - 1, i));}result.add(0,new ArrayList<Integer>());return result;}public List<List<Integer>> combineUTL(int[] S, int start, int end,int k) {List<List<Integer>> list = new ArrayList<List<Integer>>();if (start > end || k == 0 || end - start + 1 < k)return null;if (end - start + 1 == k) {List<Integer> list_over = new ArrayList<>();for (int i = start; i <= end; i++)list_over.add(S[i]);list.add(list_over);} else {List<List<Integer>> list_1 = combineUTL(S, start + 1, end, k - 1);if (null != list_1) {for (List<Integer> list_tmp : list_1) {list_tmp.add(0, S[start]);}} else {if (k - 1 == 0) {list_1 = new ArrayList<List<Integer>>();List<Integer> list_tmp = new ArrayList<>();list_tmp.add(S[start]);list_1.add(list_tmp);}}List<List<Integer>> list_2 = combineUTL(S, start + 1, end, k);if (null != list_1)list.addAll(list_1);if (null != list_2)list.addAll(list_2);}return list;}}
0 0
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- Java学习路线图,专为新手定制的Java学习计划建议
- Android SwipeRefreshLayout 官方下拉刷新控件介绍
- SDUT 2134 数据结构实验之栈四:括号匹配
- PKCS简介|密钥库文件格式|常用证书文件格式
- Android项目中Ant打包脚本编写
- Subsets
- HDU题目分类
- cortex_m3_stm32嵌入式学习笔记(九):PWM 输出实验(定时器的PWM输出)
- X 射线成像 新型数字技术 —— CMOS 探测器
- centOS6.5下的MySQL的安装与配置
- Android ScrollView 中放入 ImageView 导致的出现上下白边的问题?
- (问题记录)部署Hadoop+MySQL+Hive遇到的问题
- moss2013 Sharepoint_Config标记为“可疑" 解决方法
- TCP协议中的三次握手和四次挥手(图解)