day77(2.5)——leetcode面试经典150

77. 组合

77. 组合

java和c++果然还是不太一样,这个对象是同一个地址一定要注意

题目:

题解:

java 复制代码
class Solution {
    boolean[] flag;
    List<List<Integer>> list;

    void dfs(int x, int start, int n, int k, List<Integer> l) {
        if(x==k) {
            //这里的l是一个对象,同一个地址,最后l变成什么,每一次添加进去的l都会变成最后结果结果,所以这里要new一个副本
            list.add(new ArrayList<>(l));
            return ;
        }
        for(int i=start;i<=n;i++) {
            if(flag[i-1]==false) {
                l.add(i);
                flag[i-1]=true;
                dfs(x+1, i+1, n, k, l);
                flag[i-1]=false;
                l.remove(l.size()-1);
            }
        }
    }

    public List<List<Integer>> combine(int n, int k) {
        flag = new boolean[n];
        list = new ArrayList<>();
        dfs(0, 1, n, k, new ArrayList<Integer>());
        return list;
    }
}
相关推荐
爱敲代码的小黄15 小时前
神经网络入门指南:从 CNN、RNN 到 Attention
人工智能·面试·程序员
brave10251 天前
LLMGuide 大模型面试指南
人工智能·ai·面试·ai编程
Rain的Java大神之路1 天前
面试官最烦的答案:“我用 Redis + Token”!接口幂等 8 种方案 + 四层防御,把重复扣款工单干到 0
java·后端·面试
Moment1 天前
Harness Engineering 为什么是 AI Coding 的工程底座 ❓❓❓
前端·后端·面试
利威尔xu1 天前
2026-11-08-Go-defer-panic-recover面试
面试·golang
CoderYanger2 天前
Java EE 进阶:8.MyBatis 操作数据库(入门)(第二弹)
java·数据库·spring boot·spring·面试·java-ee·mybatis
wo_jack2 天前
C++ 入门笔记(十六):第16课 vector 模拟实现十问十答 —— 从三指针到迭代器失效
c++·后端·面试·stl·vector
聪明的笨猪猪2 天前
AI应用架构选型:架构师的核心决策困境与权衡
经验分享·面试·架构
疯华整猫2 天前
被杀掉之后:我把 Android 的「唤起 + 常驻」重做了一遍
前端·面试·架构
nice_lcj5202 天前
Java 并发容器入门:ConcurrentHashMap、CopyOnWriteArrayList、阻塞队列
java·面试·并发编程·阻塞队列·concurrenthashmap·copyonwritearraylist