LeetCode 77. Combinations

xiaoxiao2021-02-28  108

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


又是一道全排列问题,这种题的处理方法就是用一个list来进行递归处理。 public class Solution { public List<List<Integer>> combine(int n, int k) { List<List<Integer>>res = new ArrayList<List<Integer>>(); if(k==0||k>n)return res; helper(res,n,k,1,new ArrayList<Integer>()); return res; } public void helper(List<List<Integer>>res,int n,int k,int j,List<Integer>list){ if(list.size()==k){ res.add(new ArrayList<Integer>(list)); return ; } for(int i=j;i<=n;i++){ //list = new ArrayList<Integer>(); list.add(i); helper(res,n,k,i+1,list); list.remove(list.size()-1); } return ; } }
转载请注明原文地址: https://www.6miu.com/read-61496.html

最新回复(0)