当前位置: 首页 > news >正文

力扣hot100 组合总和 回溯 剪枝 组合

Problem: 39. 组合总和
在这里插入图片描述

文章目录

  • 思路
  • 复杂度
  • 💖 Code

思路

复杂度

时间复杂度: O ( n ) O(n) O(n)

空间复杂度: O ( n ) O(n) O(n)

💖 Code

class Solution{List<List<Integer>> res = new ArrayList<>();int x;// 全局targetint[] c;// 全局 candidatespublic List<List<Integer>> combinationSum(int[] candidates, int target){if (candidates == null || candidates.length == 0)return new ArrayList<>();x = target;c = candidates;dfs(0, 0, new ArrayList<Integer>());return res;}/*** @param sum  当前已选数的和* @param idx  当前选到的数的下标,下标 < idx 的数都不能选,防止重复* @param list 当前已选数列表*/private void dfs(int sum, int idx, ArrayList<Integer> list){if (sum >= x)// >= x 就返回{if (sum == x)// 只有 == x 时,才加入答案集合res.add(new ArrayList<>(list));return;}//从idx开始,idx前面的数选几个已经定了for (int i = idx; i < c.length; i++){list.add(c[i]);dfs(sum + c[i], i, list);list.remove(list.size() - 1);}}
}
http://www.lryc.cn/news/291171.html

相关文章:

  • 代码随想录 Leetcode669. 修剪二叉搜索树
  • Redis系列-数据结构篇
  • 正则表达式(RE)
  • 发布技术路线图!美国量子计算公司QuEra公开三年OKR
  • Vue2:请求接口的两种方式axios和vue-resource
  • 扩展学习|商业智能和大数据分析的研究前景(比对分析)
  • 『Docker入门指南』- 详细安装与配置教程,助你起航容器化世界!
  • 如何提高http连接成功率?
  • Elasticsearch 中使用MustNot等同于不等于遇到的坑
  • 嵌入式工程师day15(链表)
  • Coppeliasim倒立摆demo
  • 汽车燃油泵数据分析:全球市场的年复合增长率将达到10%左右
  • DC-磁盘管理(23国赛真题)
  • 216961-98-7,BODIPY 493/503 NHS 活化酯,可以应用于分子生物学等领域中
  • Python采集学习笔记-读取excel数据
  • 幻兽帕鲁服务器游戏怎么升级版本?
  • 【ASP.NET Core 基础知识】--身份验证和授权--授权和策略
  • 20240130在ubuntu20.04.6下卸载NVIDIA显卡的驱动
  • 汽车标定技术(十七)--Bypass的前世今生
  • 【开源精选导航】GitHub-Chinese-Top-Charts:一榜在手,优质中文项目轻松找寻
  • C++ 11新特性之语法甜点1
  • 【智能家居】6、语音控制及网络控制代码实现
  • Windows断开映射磁盘提示“此网络连接不存在”,并且该磁盘直在资源管理器中
  • Java项目要不要部署在Docker里?
  • Linux 入门基础知识(一)—— Linux的基本使用
  • 纯静态微信小程序水果商城
  • 操作系统-线程的实现方式和多线程模型(用户级线程 内核级线程 多线程模型的情况)和线程的状态,转换,组织,控制
  • 计算机网络 应用层
  • 拥有你的微调大模型,零代码定制+算力免费送
  • 《Docker技术革命:从虚拟机到容器化,全面解析Docker的原理与应用-上篇》