目录

  • 题目链接
  • 注意点
  • 解法
  • 小结

题目链接

Combination Sum II - LeetCode

注意点

  • 数字不能重复使用

解法

解法一:和Combination Sum这道一样,递归的时候跳过重复数字,并且参数改为i+1。

class Solution {
public:void dfs(vector<int>& candidates, int target,vector<int>& v,vector<vector<int>>& ret,int index){if(target < 0) return;if(target == 0){ret.push_back(v);return;}for(int i = index;i < candidates.size();i++){if(candidates[i] <= target){v.push_back(candidates[i]);dfs(candidates,target-candidates[i],v,ret,i+1);while(i+1 < candidates.size() && v.back() == candidates[i+1]) ++i;v.pop_back();}else break;}}vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {sort(candidates.begin(),candidates.end());vector<vector<int>> ret;vector<int> v;dfs(candidates,target,v,ret,0);return ret;}
};

小结

  • 递归题

转载于:https://www.cnblogs.com/multhree/p/10419300.html

Combination Sum II - LeetCode相关推荐

  1. 40. Combination Sum II 组合总和 II

    给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的每个数字在每个组合中只能使用一次. ...

  2. Combination Sum 和Combination Sum II

    这两道题的基本思路和combination那一题是一致的,也是分治的方法. 其中combination Sum复杂一点,因为每个数可能用多次.仔细分析下,本质上也是一样的.原来是每个数仅两种可能.现在 ...

  3. C#LeetCode刷题之#40-组合总和 II(Combination Sum II)

    目录 问题 示例 分析 问题 该文章已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3666 访问. 给定一个数组 candidates ...

  4. 【DFS】LeetCode 40. Combination Sum II

    Solution1:我的答案 同39题.DFS时间复杂度O(2n)O(2n)O(2^n),空间复杂度O(kn)O(kn)O(kn),k是最终答案的数量,n是元素个数 去重,用set,比较偷懒的做法 c ...

  5. 递归/回溯:Combination Sum II数组之和

    问题如下: 已知一组数(其中有重复元素),求这组数可以组成的所有子集中,子 集中的各个元素和为整数target的子集,结果中无重复的子集. 例如: nums[] = [10, 1, 2, 7, 6, ...

  6. Path Sum II leetcode java

    题目: Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the give ...

  7. 40. Combination Sum II

    避免这个循环的重复 所以i>position && nums[i] == nums[i-1] 1 class Solution { 2 List<List<Integ ...

  8. LeetCode40 Combination Sum II 解析

    详细见:leetcode.com/problems/combination-sum-ii C和Python的去重算法,应该记住. Java是很久之前写的,并不好. 规则是:相同数字. 1,前面选了,后 ...

  9. 40. Combination Sum II **

    description: 给定target, 求给定数列中找到几个数(其中的数不可以重复使用,且一组数有几个也不做限制)的和为target,和上面那个题一毛一样的,就改一下下标就行了,背下来背下来背下 ...

  10. Combination Sum II

    1 解析 这道题是则就是上一道题的进阶版,此题可以出现相同的元素,例如[1 1 1 7] 目标值为8,那么难点就在于如何去除重复的情况,只保留[1 7]这种情况. 2 思路 都是采用DFS求解,思路和 ...

最新文章

  1. Android 开发中的View事件监听机制
  2. ESLG.CommonUtility.NHibernateHelper的类型初始值设定项引发异常
  3. 学习心得体会、备忘录整理
  4. 02-Wifi通讯架构介绍
  5. [剑指offer][JAVA]面试题第[39]题[数组中出现次数超过一半的数字][HashMap][摩尔投票法]
  6. python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用
  7. C# 集合 泛型 匿名方法(四)
  8. git 查看、创建、删除 本地,远程 分支
  9. 机器学习课程笔记【十】- 混合高斯与期望最大化算法
  10. windows下OpenCV扩展模块(Extra Contrib)配置时的“Invalid escape sequence \o“解决方法
  11. 网络知识之----http七层协议
  12. php怎么把字符转成大写,php将字符串全部转换成大写或者小写的方法
  13. 使用maya.cmds加载和卸载插件
  14. 知乎客户端埋点流程、模型和平台技术
  15. lecture09 Convex 模型预测控制(MPC)
  16. 这5个生意,虽然比较冷门,但前景很好,竞争也不大,赚钱容易点
  17. libYUV编译成静态库以及使用
  18. Golang Protocol Buffers数据格式教程
  19. 直播软件开发场景中的用户推广方式——三级分销如何实现
  20. 什么是获客成本 (CAC) 以及如何计算

热门文章

  1. android 傅里叶变换_Android连载38访问联系人
  2. java案例代码12--随机码--静态类的使用
  3. python bs4 基本应用
  4. aliy 数据库连接池加密_Druid数据库连接池 实现数据库账号密码加密
  5. cvs导入oracle缺失逗号,pandas教程:使用read_csv()导入数据
  6. IAR_STM32_BootLoader
  7. 记录一次常见的错误:java.sql.SQLException: Got error 28 from storage engine
  8. void android.os.Bundle.putBoolean(java.lang.String
  9. VC++ 6.0 C8051F340 USB 通信 CAN 数据解析
  10. SharePoint Foundation 2013安装-1:先决条件准备