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;
    }
}
相关推荐
Remember_9932 小时前
MySQL 索引详解:从原理到实战优化
java·数据库·mysql·spring·http·adb·面试
❀͜͡傀儡师2 小时前
基于大语言模型的简历分析和模拟面试系统
人工智能·语言模型·面试
Warren983 小时前
Pytest Fixture 作用域与接口测试 Token 污染问题实战解析
功能测试·面试·单元测试·集成测试·pytest·postman·模块测试
June bug3 小时前
软件测试面试常见问答题2
面试·职场和发展
2501_901147833 小时前
PyTorch DDP官方文档学习笔记(核心干货版)
pytorch·笔记·学习·算法·面试
Serene_Dream3 小时前
Java 垃圾收集器
java·jvm·面试·gc
YuTaoShao4 小时前
【LeetCode 每日一题】3640. 三段式数组 II——(解法二)DP
算法·leetcode·职场和发展
阿蔹5 小时前
力扣面试题二Python
python·算法·leetcode·职场和发展
元亓亓亓5 小时前
LeetCode热题100--169. 多数元素--简单
算法·leetcode·职场和发展