77. 组合(回溯)

和上一道回溯的题思路大致相同:
从前往后依次遍历,之后拼接的数字为当前数字cur的之后的数字,直到list的长度等于k,将list加入到ans当中。

class Solution {
   
    public List<List<Integer>> combine(int n, int k) {
   
        List<List<Integer>> ans = new ArrayList<>();
        backtrack(n, k, 1, ans, new ArrayList<>());
        return ans;
    }
    public void backtrack(int n, int k, int cur, List<List<Integer>> ans, List<Integer> list) {
   
        if (list.size() == k) ans.add(new ArrayList<>(list));
        else {
   
            for (int i = cur; i <= n; ++i) {
   
                list.add(i);
                backtrack(n, k, i + 1, ans, list);
                list.remove(list.size() - 1);
            }
        }
    }
}

特别注意:

  1. ifelse的区分,否则if要及时return
  2. 回溯的时候新的cur值应该是i+1而不是cur+1
  3. ans.add(new ArrayList<>(list)); 在Java中,对象赋值是传递引用的。这意味着当你将一个对象赋给另一个变量时,它们实陘指向同一个对象。所以,如果你简单地将list添加到ans中,实际上你只是将对list的引用添加到了ans中,而不是list的副本。这就意味着当你后续修改list时,ans中对应的组合也会被修改,因为它们共享相同的引用。

相关推荐

  1. 77. 组合回溯

    2024-01-13 02:54:01       55 阅读
  2. 回溯算法|77.组合

    2024-01-13 02:54:01       38 阅读
  3. 【leetcode刷刷】回溯77.组合

    2024-01-13 02:54:01       55 阅读
  4. leetcode77组合——经典回溯算法

    2024-01-13 02:54:01       20 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-13 02:54:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-13 02:54:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-13 02:54:01       87 阅读
  4. Python语言-面向对象

    2024-01-13 02:54:01       96 阅读

热门阅读

  1. go-zero 如何在任意地方获取yaml中的值

    2024-01-13 02:54:01       50 阅读
  2. Web前端篇——element-plus组件设置全局中文

    2024-01-13 02:54:01       53 阅读
  3. 100. 相同的树

    2024-01-13 02:54:01       51 阅读
  4. mysql 一对多 合并多个通过 逗号拼接展示

    2024-01-13 02:54:01       53 阅读
  5. python - 依赖 pycryptodome

    2024-01-13 02:54:01       52 阅读
  6. Mysql 触发器

    2024-01-13 02:54:01       50 阅读
  7. Linux中创建文件的基本方法

    2024-01-13 02:54:01       53 阅读
  8. gitlab部署

    2024-01-13 02:54:01       46 阅读
  9. 1. Presto基础

    2024-01-13 02:54:01       47 阅读
  10. 安全基础知识

    2024-01-13 02:54:01       59 阅读