leetcde: Subsets
来源:互联网 发布:虚拟机中安装ubuntu 编辑:程序博客网 时间:2024/05/21 00:21
做法有很多,我采取的思路也很简单,就是简单的递归....先将数组排序,按照顺序每次插入一个数字并将当前的排列插入结果集合.....最后返回的即是全排列。
但是!!! 一直都是TLE,而且出错的数据也不大......找了半天原因后来发现自己经常忽略的一点!!!! JAva传递的都是对象,所以在递归和插入结果集合的时候我们不能直接将
当前List插入(因为其可能在之后的递归中被修改),应该新建一个或clone来插入或递归.......
public class Solution { List<List<Integer>> res = new ArrayList<List<Integer>>(); public List<List<Integer>> subsets(int[] S) { Arrays.sort(S); List<Integer> tmp = new ArrayList<Integer>(); fun(tmp,S,0,0); return res; } void fun(List<Integer> tmp,int[] S,int count,int dep) { res.add(tmp); int num = S.length; if(dep==num) { return ; } for(int i=count;i<num;i++) { List<Integer> ttt = new ArrayList(tmp); ttt.add(S[i]); fun(ttt,S,i+1,dep+1); } }}
0 0
- leetcde: Subsets
- leetcde: Rotate Image
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- Subsets
- 用Mouse_event()来模拟鼠标操作
- 开源项目收集--持续更新
- Android 9 patch 的坑
- Hibernate利用@DynamicInsert和@DynamicUpdate生成动态SQL语句
- C/C++整数与字符串互转
- leetcde: Subsets
- MySql如何查看连接数和状态
- WebService简介
- 大学生创业要先工作再创业更容易成老板
- 跟我一起学extjs5(05--主界面上加入顶部和底部区域)
- jboss7 简单配置
- C++学习笔记 stl map
- 前端开发面试题集锦(一)
- WebService CXF学习(入门篇1):CXF由来