栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

回溯算法踩坑

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

回溯算法踩坑

>中插值 - 不皮的皮卡丘 - 博客园">Java 引用传值之向List>中插值 - 不皮的皮卡丘 - 博客园

public class Solution {
    List temp=new ArrayList<>();
    List> res=new ArrayList<>();

    @Test
    public  void test(){
     combine(3,2);
    }

    public List> combine(int n, int k) {
        backtracking(n,k,1,temp,res);
        return res;

    }
    public void backtracking(int n,int k,int startIndex, List temp,List> list){
        if(temp.size()==k){
          // 注意:不能直接执行res.add(temp);这行代码,这样会导致最终的结果都是空集合
            // 因为这行代码代表res集合的引用指向temp集合,而temp集合又是不断改变的,所以会导致最终的结果不正确
          res.add(new ArrayList<>(temp));
            return;

        }
        for(int i=startIndex;i<=n;i++){
            temp.add(i);
            backtracking(n,k,i+1,temp,list);
            temp.remove(temp.size()-1);

        }
    }

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/866656.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号