77.组合

2020-03-05  本文已影响0人  最尾一名

原题

https://leetcode-cn.com/problems/combinations/

解题思路

典型的回溯。

代码

/**
 * @param {number} n
 * @param {number} k
 * @return {number[][]}
 */
var combine = function(n, k) {
    const resArr = [];
    if (k > n) return resArr;
    const backTrace = (arr, m) => {
        if (m >= k) {
            resArr.push(arr);
            return;
        }
        for (let i = m + 1; i <= n; ++i) {
            if (!arr.length || i > arr[arr.length-1]) {
                arr.push(i);
                backTrace(arr.slice(), m + 1);
                arr.pop();
            }
        }
    }
    backTrace([], 0);
    return resArr;
};

复杂度

上一篇 下一篇

猜你喜欢

热点阅读