代码随想录二刷day24

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、回溯法模板
  • 二、力扣77. 组合


前言


一、回溯法模板

void backtracking(参数) {
    if (终止条件) {
        存放结果;
        return;
    }

    for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {
        处理节点;
        backtracking(路径,选择列表); // 递归
        回溯,撤销处理结果
    }
}

二、力扣77. 组合

class Solution {
    List<List<Integer>> res = new ArrayList<>();
    List<Integer> group = new ArrayList<>();
    public List<List<Integer>> combine(int n, int k) {
        bracking(1, n, k);
        return res;
    }
    public void bracking(int start ,int n, int k){
        if(group.size() == k){
            res.add(new ArrayList<>(group));
            return;
        }
        for(int i = start; i <= n; i ++){
            group.add(i);
            bracking(i+1, n, k);
            group.remove(group.size()-1);
        }
    }
}

你可能感兴趣的:(java,算法,开发语言,leetcode,数据结构)