LeetCode-77 Combinations(그룹)

1077 단어 LeetCode
LeetCode-77 Combinations(그룹)
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],
]

 
분석: 귀착, 거슬러 올라가는 사상.
PS:list가 함수 내부에 들어갈 때 밑바닥은 수조이기 때문에 주소이기도 하기 때문에 함수 체내의 조작은 그 값의 변화에 유효하다.
public class Solution {
    public List> combine(int n, int k) {
    	List> llist = new ArrayList>();
    	List list = new ArrayList();
    	comeback(1,n,k,list,llist);
    	return llist;
    }
    static void comeback(int temp, int n, int k,List list,List> llist){
    	if (list.size() == k) {
    		llist.add(new ArrayList(list));// new 。 list , list 。
    		return;
		}
    	for (int i = temp; i <= n; i++) {
    		list.add(i);
    		comeback(i+1,n,k,list,llist);
    		list.remove(list.size()-1);
		}
    }
}

Runtime: 285 ms

좋은 웹페이지 즐겨찾기