1. 概述
给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。
示例: 输入: n = 4, k = 2输出:
[
[2,4],
[3,4],
[2,3],
[1,2],
[1,3],
[1,4],
]
2. 解题
<?phpclass Solution {private $ret = [];/*** @param Integer $n* @param Integer $k* @return Integer[][]*/public function combine($n, $k) {$this->do($n, $k);return $this->ret;}public function do($n, $k, $arr = [], $ele = 1) {if (count($arr) == $k) {$this->ret[] = $arr;return;}if ($ele > $n) {return;}for ($i = $ele; $i <= $n; $i++) {array_push($arr, $i);$this->do($n, $k, $arr, ++$ele);array_pop($arr);}return;}}$n = 4;$k = 2;$cls = new Solution();$r = $cls->combine($n, $k);array_walk ($r, function (&$v) {$v = implode(',', $v);});print_r($r);
