Combinations
来源:互联网 发布:皇甫圣华的淘宝店 编辑:程序博客网 时间:2024/06/16 14:21
Given two integers n and k, return all possible combinations of k numbers out of 1 ... n.
For example,
If n = 4 and k = 2, a solution is:
[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]
枚举的题一般都是DFS+Backtracking
经常错的:要新建一个object,保存得到的结果!!!比如这个list,因为你是要restore的,不新建的话又把之前得到的值删掉了。。。
public class Solution { List<List<Integer>> res = new ArrayList<>(); public List<List<Integer>> combine(int n, int k) { List<Integer> list = new ArrayList<>(); HashSet<Integer> set = new HashSet<>(); helper(list, set, n, k, 0); return res; } public void helper(List<Integer> list, HashSet<Integer> set, int n, int k, int pre) { if (list.size() == k) { List<Integer> t = new ArrayList<>(list); //注意要赋值到一个新的list上!!! res.add(t); return; } for (int i = pre + 1; i <= n; i++) { //用pre保存之前的值,新产生的总要比pre大 if (set.contains(i)) continue; list.add(i); set.add(i); helper(list, set, n, k, i); list.remove((Integer)i); set.remove(i); } }}
0 0
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- combinations
- Combinations
- Combinations
- Combinations
- Combinations
- 《人工智能(智能系统指南,第二版)》读书笔记——2、第一章
- HIbernate对数据库的操作
- Prestodb概述及性能测试
- 关于ASUS X55V win7音响或者耳机没有声音的问题
- Android利用GridView加载九宫格菜单
- Combinations
- c++析构函数作用域
- 反渗透设备:反渗透海水淡化装置的介绍以及技术说明
- string cstring string.h的区别
- 反渗透设备:反渗透纯水设备中软水器的作用及维护方法
- Android中的Android.mk文件解析
- Json解析
- java socket 实现服务端与客户端------一对多的服务端和客户机
- Sum root to leaf numbers