LeetCode 77. Combinations 解題報告
阿新 • • 發佈:2019-01-02
77. Combinations
My Submissions Total Accepted: 67261 Total Submissions: 201946 Difficulty: MediumGiven 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], ]
Subscribe to see which companies asked this question
Show Tags Show Similar Problems Have you met this question in a real interview? Yes No求組合數, dfs求解,搜尋K的每一位。
public class Combinations { static List<List<Integer>> ll = new ArrayList<List<Integer>>(); public static void main(String[] args) { System.out.println(combine(5, 2)); System.out.println(combine(4, 2)); } public static List<List<Integer>> combine(int n, int k) { ArrayList<Integer> list = new ArrayList<Integer>(); ll.clear(); dfs(n, k, 0, 1, list); return ll; } private static void dfs(int n, int k, int level, int idx, ArrayList<Integer> list) { if (level >= k) { ll.add((ArrayList<Integer>) list.clone()); return; } for (int i = idx; i <= n; i++) { list.add(i); dfs(n, k, level + 1, i + 1, list); list.remove(new Integer(i)); } } }