首页 > 其他分享 >LeetCode40. 组合总和 II

LeetCode40. 组合总和 II

时间:2022-11-07 18:44:51浏览次数:90  
标签:tmp target int next II vector candidates LeetCode40 总和

题意

  • 给一个数组和target, 找出数组中所有和为target的组合

方法

  • DFS

代码

class Solution {
private:
    vector<vector<int>> res;
    vector<int> tmp;

public:
    int getNextNumberIndex(vector<int>& candidates, int i)  //寻找下一个不同元素的下标
    {
        int next = i;
        while (next < candidates.size() && candidates[next] == candidates[i])
        {
            ++ next;
        }

        return next;
    }

    void dfs(vector<int>& candidates, int i, int target)    //i为当前元素的下标
    {
        if (target == 0)
        {
            res.push_back(tmp);
        }
        else if (target > 0 && i < candidates.size())
        {
            tmp.push_back(candidates[i]);   //选择当前元素
            dfs(candidates, i + 1, target - candidates[i]);
            tmp.pop_back();                 //不选当前元素,选择下一个不同元素
            dfs(candidates, getNextNumberIndex(candidates, i), target);
        }
    }

    vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {
        sort(candidates.begin(), candidates.end());         //首先排序

        dfs(candidates, 0, target);

        return res;
    }
};

标签:tmp,target,int,next,II,vector,candidates,LeetCode40,总和
From: https://www.cnblogs.com/Figure_at_a_Window/p/16866997.html

相关文章

  • c# iis网站发布
    c#iis网站发布问题一:有很多人在用服务器发布网站的时候,一直出现“HTTP错误403.14-ForbiddenWeb服务器被配置为不列出此目录的内容“,那么是什么原因引起的呢!工......
  • 最长上升子序列 II
    题目:题解:使用二分#include<bits/stdc++.h>usingnamespacestd;constintN=5e5+10;longlonga[N],f[N];intcon;intfind(intx){intl=1,r=con;while(l<r){......
  • asp.net core IIS部署运行环境修改
    asp.netcoreIIS部署运行环境修改目录下的web.config<aspNetCoreprocessPath="dotnet"arguments=".\WebApi.dll"stdoutLogEnabled="false"stdoutLogFile=".\logs\std......
  • 45. Jump Game II
    Youaregivena 0-indexed arrayofintegers nums oflength n.Youareinitiallypositionedat nums[0].Eachelement nums[i] representsthemaximumleng......
  • Palindrome Partitioning II
    https://leetcode.cn/problems/palindrome-partitioning-ii/dp[i]表示s[0..i]切分为回文子串的最小分割次数dp[i]=min(dp[j]+1),如果s[j+1...i]是回文串,j<......
  • pgpool ii在lightdb下的性能测试
    1、从https://www.pgpool.net/下载最新版pgpoolii,如4.3.2。2、假设安装了postgresql或lightdb,百度一搜即可3、解压包,执行./configure &&make&&makeinstall4、修......
  • 关于为什么使用 ascii GBK unicode编码
    关于为什么使用asciiGBKunicode编码由来:大家都知道计算机最早是美国人为了更加便捷的存储和计算数据发明的,但是呢计算机底层都是硬件,只能存储像0101这样的二进制数据,那......
  • 实例036 字母与ASCII码的转换
      usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usi......
  • 如何使用cmd(dos命令)关闭IIS中某个站点
    在目录  C:\Windows\System32\inetsrv下面有一个appcmd程序,定位到该目录下appcmdsite/? #管理站点appcmd/?#管理整个IIS停止站点appcmdsitestop "站点......
  • 解决unicodedecodeerrorasciicodeccan’tdecodebyte0xd7in_F_hawk189_新浪博客
    今天在安装python2后使用pip安装扩展库报错,百度一下之后,是中文编码的问题首先在Lib\site-packages文件夹下新建一个py文件:sitecustomize.py内容是importsy......