首页 > 其他分享 >力扣中77 组合

力扣中77 组合

时间:2023-03-14 16:24:47浏览次数:37  
标签:77 return 组合 int res List 力扣 new path

单句return;的用法:

 

 

上午看了题解 下午照猫画虎的

public List<List<Integer>> combine(int n, int k) {
//        List<List<Integer>> res=new ArrayList<>();  //这两句等价
        List<List<Integer>> res=new ArrayList<List<Integer>>();
        if(k<0||n<k) { //这个判断根本没有想
            return res;
        }
        Deque<Integer> path=new ArrayDeque<>();//这里的ArrayDeque
        dfs(n,k,1,path,res);
        return res;
        
    }

    private void dfs(int n, int k, int begin, Deque<Integer> path, List<List<Integer>> res) {
        if(path.size()==k) {
            res.add(new ArrayList<>(path));//这个传参什么的 需要在这块新建 才能传入
            return;  //这里不加return;为啥不报错  加return后面部分不执行了 ex这个for 
               //加两个输出调试发现会出现栈里面大于3的情况 不会出错是因为没有输出 
               //只输出三个的 但是会有重复的 为什么重复的不会错 但是一加下一行剪枝就会出错
        }
        for(int i=begin;i<=n-(k-path.size())+1;i++) {//剪枝
            path.addLast(i);
            System.out.println("递归之前 => " + path);
            dfs(n,k,i+1,path,res);//这里k不变因为最后比长度的时候包含了前面塞入的
            path.removeLast();
            System.out.println("递归之hou => " + path);
        }
    }

 

标签:77,return,组合,int,res,List,力扣,new,path
From: https://www.cnblogs.com/ayuanjiejie/p/17214117.html

相关文章

  • 力扣178(MySQL)-分数排名(中等)
    题目:表: Scores编写SQL查询对分数进行排序。排名按以下规则计算:分数应按从高到低排列。如果两个分数相等,那么两个分数的排名应该相同。在排名相同的分数后,排名数应......
  • 力扣904 水果成篮
    水果成篮:按顺序取,问连续最多的两个数有几个。总体思路:1、如果是我们要的数,直接数量加一;2、如果是新的数,那么j-1的位置的数就是第一个数,j位置的数就是第二个数。并且要......
  • P7728 旧神归来 题解
    日常生活:写多项式——写多项式题解——颓——写多项式——写多项式题解——颓——……最近真的降智。大水题切不动。#查询gtm1514精神状态题解好像挺清新的。首先我......
  • 力扣简21 合并两个有序链表
    递归特别短!没这种思维!  自己用那种最直白的两个两个相比换指针指向导致会有空情况等特殊情况出错 看了题解是用递归什么的扩展一下这种思路而且可以采用给链表加......
  • 面向对象类图的六种关系(继承、实现、依赖、关联、聚合、组合)
    进行面向对象设计时,经常需要根据场景抽象出一些类,梳理各个类之间的关系,实现一个“低耦合,高内聚”的系统。下面通过学生、班级、教师、学校这些角色和场景,说明面向对象中,类......
  • 力扣180(MySQL)-连续出现的数字(中等)
    题目:编写一个SQL查询,查找所有至少连续出现三次的数字。返回的结果表中的数据可以按 任意顺序 排列。查询结果格式如下面的例子所示: 解题思路:原表数据: 方法......
  • 代码随想录day25|组合总和III 电话号码的字母组合
    力扣题目链接(opensnewwindow)找出所有相加之和为n的k个数的组合。组合中只允许含有1-9的正整数,并且每种组合中不存在重复的数字。分析  本题就是在[1,2,3,4......
  • 力扣---78. 子集
     给你一个整数数组 nums,数组中的元素互不相同。返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。你可以按任意顺序返回解集。 示例1:输入:nums=......
  • 力扣---面试题 17.05. 字母与数字
    面试题17.05.字母与数字给定一个放有字母和数字的数组,找到最长的子数组,且包含的字母和数字的个数相同。返回该子数组,若存在多个最长子数组,返回左端点下标值最小的子......
  • leetcode-977-easy
    SquaresofaSortedArrayGivenanintegerarraynumssortedinnon-decreasingorder,returnanarrayofthesquaresofeachnumbersortedinnon-decreasingor......