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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 初中数学成绩不好怎么办 大人不会算数学怎么办 小学初数学不好怎么办 初中生数学计算能力差怎么办 初中生数学计算差怎么办 初一数学没救了怎么办 五年级英语不好怎么办 三年级孩子学习差怎么办 孩子三年级学习成绩差怎么办 三年级字写不好怎么办 7小孩表达能力差怎么办 孩子考了低分怎么办 初一考300分怎么办 小学三年级成绩不好怎么办 五年级考几分怎么办 思想晚熟的人怎么办 孩子学不好数学怎么办 做作业速度慢怎么办 孩子碎头发太多怎么办 孩子碎发太多怎么办 孩子的作业太多怎么办 爸爸是乙肝孩子怎么办 孩子出生没有奶怎么办 顺产后没有奶水怎么办 还在经常逃课怎么办 老板不重视自己怎么办 孩子不听话爱撒谎怎么办 老师针对我孩子怎么办 小孩动不动就哭怎么办 孩子太拧应该怎么办 孩子贪玩不爱学习怎么办 高二了还不学怎么办 小朋友不喜欢上幼儿园怎么办 一岁半的宝宝不听话怎么办 老公是个窝囊废怎么办 幼儿园老师不喜欢家长怎么办 老师讨厌学生了怎么办 一个舍友很讨厌怎么办 家长对老师不满怎么办 教师被家长辱骂怎么办 如果老师喜欢自己怎么办