首页 > 代码库 > [LeetCode] Combinations
[LeetCode] Combinations
//递归结发,计算正确,但是会timeout
1 public class Solution { 2 public List<List<Integer>> combine(int n, int k) { 3 int [] num = new int[n+1]; 4 for (int i=0; i<=n; i++) num[i] = i; 5 List<List<Integer>> result = new ArrayList<List<Integer>>(); 6 7 generateCombine(result, num, 1, k); 8 9 return result;10 }11 12 public void generateCombine(List<List<Integer>> result, int [] num, int nowIndex, int k) {13 if (nowIndex>k) {14 List<Integer> oneResult = new ArrayList<Integer>();15 for (int i=0; i<=k; i++) oneResult.add(num[i]);16 result.add(oneResult);17 } else {18 for (int i=nowIndex; i<num.length; i++) {19 swap(num, nowIndex, i);20 generateCombine(result, num, nowIndex+1, k);21 swap(num, nowIndex, i);22 }23 }24 }25 26 public void swap(int [] num, int i, int j) {27 int tmp = num[i];28 num[i] = num[j];29 num[j] = tmp;30 }31 }
[LeetCode] Combinations
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。