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-3个小时,我的思路和排名第一的思路是一致的,这里需要注意js需要深度copy,否则数组数据都一样,
这个代码排名80%
/**
* @param {number} n* @param {number} k
* @return {number[][]}
*/
var combine = function(n, k) {
l=0;
arr=[];
arr_l=[];
m=k;
function search(n,k){
if(k==1) {
for (j = n;j>=1;j--) {
arr[k - 1] = j;
arr_l[l] = arr.slice(0);
l++;
}
return ;
}
for(var i=n;i>=k;i--) {
arr[k-1] = i;
//for (var j = i ; j >= k ; j--) {
search(i-1, k - 1);
}
//return ;
}
search(n,k);
return arr_l;
};