深度优先-leetcode77 组合

来源:互联网 发布:nodejs mysql vue 编辑:程序博客网 时间:2024/05/16 18:44

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],]

public class Solution {    public static List<List<Integer>> ans = new ArrayList<List<Integer>>();    public static int[] path = new int[100];    public static int K = 0;        public static void robot(int idx, int n, int k){//idx [0, n]        if(k == 0){            List<Integer> tmp = new ArrayList<Integer>(k);            for(int i = 0; i < K; i++ ){                tmp.add(path[i]+1);            }            ans.add(tmp);            return;        }        for(int i = idx; i < n; i++){            path[k-1] = i;            robot(i + 1, n, k-1);        }    }    public List<List<Integer>> combine(int n, int k) {        ans.clear();        K = k;        robot(0,n,k);        return ans;            }}



原创粉丝点击