解题

  • 剪枝,边界条件及重复逻辑
  • 正确答案逻辑
  • 递归及回溯
    1. var combine = function(n, k) {
    2. const res = [];
    3. const dfs = (i, temp) => {
    4. if (temp.length + (n - i + 1) < k) {
    5. return;
    6. }
    7. if (temp.length == k) {
    8. res.push(temp);
    9. return;
    10. }
    11. dfs(i + 1, [...temp, i]);
    12. dfs(i + 1, temp);
    13. }
    14. dfs(1, []);
    15. return res;
    16. };