给出两个整数n和k,返回从1到n中取k个数字的所有可能的组合
例如:
如果n=4,k=2,结果为
[↵ [2,4],↵ [3,4],↵ [2,3],↵ [1,2],↵ [1,3],↵ [1,4],↵]
思路:当前数作为其中一个,剩下的就从后面来获取
<?php
function combine($start, $end , $num) {
$arrRet = array();
if ($num == 1) {
for ($i = $start; $i <= $end; $i ++) {
$arrRet[] = [$i];
}
return $arrRet;
}
for ($i = $start; $i <= $end - $num + 1; $i ++) {
$ret = combine($i + 1, $end, $num - 1);
foreach ($ret as $item) {
$item[] = $i;
$arrRet[] = $item;
}
}
return $arrRet;
}
$ret = combine(1,4,2);
print_r($ret);