2024.4.20力扣每日一题——组合总和

news/2024/10/18 12:25:18/

2024.4.20

      • 题目来源
      • 我的题解
        • 方法一 回溯

题目来源

力扣每日一题;题序:39

我的题解

方法一 回溯

以每一个位置开始深搜,直到target等于0或者小于0或者遍历完结束。
关键在于:注意去重 巧妙方法:传入一个index,是上一次遍历元素的位置,控制其不再去遍历前面的元素

时间复杂度:O( n ∗ 2 n n*2^n n2n)。n 个位置每次考虑选或者不选,如果符合条件,就加入答案的时间代价。但是实际运行的时候,因为不可能所有的解都满足条件,递归的时候还会用 target−candidates[idx]≥0进行剪枝,所以实际运行情况是远远小于这个时间复杂度的。
空间复杂度:O(n)

java">class Solution {List<List<Integer>> res;public List<List<Integer>> combinationSum(int[] candidates, int target) {res=new ArrayList<>();List<Integer> path=new ArrayList<>();for(int i=0;i<candidates.length;i++){path.add(candidates[i]);dfs(candidates,target-candidates[i],i,path);path.remove(path.size()-1);}return res;}public void dfs(int[] candidates,int target,int index,List<Integer> path){if(target==0)res.add(new ArrayList<>(path));//后一个条件的前提是candidates数组是升序的,这里是看了官方的题解,感觉默认是有序的if(target<0||target-candidates[index]<0)return ;for(int next=index;next<candidates.length;next++){path.add(candidates[next]);dfs(candidates,target-candidates[next],next,path);path.remove(path.size()-1);}}
}

有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~


http://www.ppmy.cn/news/1428974.html

相关文章

JavaScript:执行上下文 (栈)、作用域(链)、预解析

执行上下文 (栈): 执行上下文、执行上下文栈、预解析、作用域、作用域链、 &#xff08;打断点&#xff09; 执行上下文&#xff08;执行上下文环境&#xff09;&#xff1a;//全局环境 函数环境 程序在解析和运行的时候所依赖和使用的环境&#xff1b; 全局执行上下文环境 和…

如何在阿里云主机上安装FreeBSD14系统

文章目录 在阿里云主机上安装FreeBSD14系统准备阿里云云主机识别目标磁盘下载 FreeBSD14解压缩 FreeBSD14系统镜像创建可启动的磁盘启动 FreeBSD14 在阿里云主机上安装FreeBSD14系统 阿里云主机不支持 FreeBSD14 系统的镜像&#xff0c;因此需要手动进行安装。 准备阿里云云主…

完结撒花! java算法day60 | 84.柱状图中最大的矩形

84.柱状图中最大的矩形 思路&#xff1a; 这道题和接雨水很像&#xff0c;不过有两点差别&#xff1a; 这道题需要找到一个位置前一个比他小的数和后一个比他小的数&#xff0c;而接雨水是找到前一个和后一个比他大的数。需要在原数组前后各补上0&#xff0c;防止忽略一些边缘…

完全平方和的最小次数

完全平方和的最小次数 #include<bits/stdc.h> using namespace std; const int MAXN20; const int INF0x3f3f3f3f; //打印出每一个数的由完全平方数之和组成的最小次数 /*例如当n为10 数字&#xff1a;0 1 2 3 4 5 6 7 8 9 10 结果&#xff1a;0 1 2 3 1 2 3 4 2 1 2 */…

安装WSL2

PS C:\Users\pc> wsl --set-default-version 2 有关与 WSL 2 关键区别的信息&#xff0c;请访问 https://aka.ms/wsl2操作成功完成。PS C:\Users\pc> wsl --update 正在检查更新。 已安装最新版本的适用于 Linux 的 Windows 子系统。PS C:\Users\pc> wsl --shutdownPS…

实名制重要性、PHP身份实名认证示例、身份证ocr识别核验

身份证丢失失&#xff0c;可能会被不法分子利用去贷款。虽然是被人冒名办理&#xff0c;客观上不承担责任&#xff0c;但会造成个人信用信息的困扰。因此&#xff0c;对于个人来讲&#xff0c;要妥善保管自己的身份证&#xff0c;避免不必要的麻烦。对于贷款机构来说&#xff0…

色彩的魔力:渐变色在设计中的无限可能性

夕阳&#xff0c;天空&#xff0c;湖面&#xff0c;夕阳...随着距离和光影的变化&#xff0c;颜色的渐变色&#xff0c;近大远小、近实远虚的透视&#xff0c;为大自然营造了浪漫的氛围。延伸到UI/UX设计领域&#xff0c;这种现实、惊艳、独特的渐变色也深受众多设计师的喜爱。…

PgSQL数据库运维操作

1 登录数据库 psql -U 用户名 -d 数据库 psql -U yuhui -d yanglao 2 复制表 insert into yanglaojigou_20240415 (key, province, city, district, name, address, price_low, price_high, beds, property, type, created_time) select key, province, city, district, n…