LeetCode - Combinations
生活随笔
收集整理的這篇文章主要介紹了
LeetCode - 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:
思路:
遞歸
package recursion;import java.util.ArrayList; import java.util.List;public class Combinations {public List<List<Integer>> combine(int n, int k) {List<List<Integer>> res = new ArrayList<List<Integer>>();List<Integer> record = new ArrayList<Integer>();generateRecord(res, record, 1, n, k);return res;}private void generateRecord(List<List<Integer>> res, List<Integer> record, int start, int end, int k) {if (k == 0) {res.add(record);return;}for (int i = start; i <= end - k + 1; ++i) { List<Integer> newRecord = new ArrayList<Integer>(record);newRecord.add(i);generateRecord(res, newRecord, i + 1, end, k - 1);}}public static void main(String[] args) {// TODO Auto-generated method stubCombinations c = new Combinations();List<List<Integer>> res = c.combine(4, 2);for (List<Integer> l : res) {for (int i : l) System.out.print(i + "\t");System.out.println();}}}?
總結
以上是生活随笔為你收集整理的LeetCode - Combinations的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android开源库集锦
- 下一篇: Memcache简介