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;
    }
}
相关推荐
野犬寒鸦8 小时前
从零起步学习计算机操作系统:I/O篇
服务器·开发语言·网络·后端·面试
Fairy要carry9 小时前
面试-Agent任务编排怎么处理?
网络·python·面试
闻哥9 小时前
深入理解 MySQL InnoDB Buffer Pool 的 LRU 冷热数据机制
android·java·jvm·spring boot·mysql·adb·面试
koping_wu9 小时前
Java面试汇总:java基础、多线程、spring、jvm、分布式
java·spring·面试
TechPioneer_lp9 小时前
腾讯客户端开发岗位 LeetCode 高频题汇总(2026版)
算法·leetcode·面试·求职招聘·笔试·腾讯校招·leetcode高频题
程序员爱钓鱼10 小时前
Go并发同步核心库:syn 包深度指南
后端·面试·go
赵长辉10 小时前
牛客面试Top101: BM8 表达式求值【java,go】
算法·面试
Fairy要carry10 小时前
面试-单 Agent 上下文膨胀问题
chrome·面试·职场和发展
小江的记录本10 小时前
【HashMap】HashMap 系统性知识体系全解(附《HashMap 面试八股文精简版》)
java·前端·后端·容器·面试·hash·哈希
星辰_mya10 小时前
三级缓存破局:Spring 如何优雅解决循环依赖?
java·spring·缓存·面试