leetcode combinations java_[LeetCode][Java] 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],
]
題意:
給定兩個整數(shù) n 和 k,返回1 ...n中k個數(shù)字的全部的組合。
例如說。
假設(shè)n=4 and k=2,解為:
[
[2,4],
[3,4],
[2,3],
[1,2],
[1,3],
[1,4],
]
算法分析:
用一個循環(huán)遞歸處理子問題。
AC代碼:
public class Solution
{
public ArrayList> combine(int n, int k)
{
ArrayList> res = new ArrayList>();
if(n<=0 || n
return res;
helper(n,k,1,new ArrayList(), res);
return res;
}
private void helper(int n, int k, int start, ArrayList item, ArrayList> res)
{
if(item.size()==k)
{
res.add(new ArrayList(item));
return;
}
for(int i=start;i<=n;i++) // try each possibility number in current position
{
item.add(i);
helper(n,k,i+1,item,res); // after selecting number for current position, process next position
item.remove(item.size()-1); // clear the current position to try next possible number
}
}
}
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的leetcode combinations java_[LeetCode][Java] Combinations的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gets函数会自动加空字符吗_Pytho
- 下一篇: XPath详解教程