LeetCode40. Combination Sum II

文章目錄

    • 一、題目
    • 二、題解

一、題目

Given a collection of candidate numbers (candidates) and a target number (target), find all unique combinations in candidates where the candidate numbers sum to target.

Each number in candidates may only be used once in the combination.

Note: The solution set must not contain duplicate combinations.

Example 1:

Input: candidates = [10,1,2,7,6,1,5], target = 8
Output:
[
[1,1,6],
[1,2,5],
[1,7],
[2,6]
]
Example 2:

Input: candidates = [2,5,2,1,2], target = 5
Output:
[
[1,2,2],
[5]
]

Constraints:

1 <= candidates.length <= 100
1 <= candidates[i] <= 50
1 <= target <= 30

二、題解

使用used數組進行去重

class Solution {
public:vector<vector<int>> res;vector<int> path;void backtracking(vector<int>& candidates,int target,int sum,int startIndex,vector<int>& used){if(sum > target) return;if(sum == target){res.push_back(path);return;}for(int i = startIndex;i < candidates.size();i++){if(i > 0 && candidates[i-1] == candidates[i] && used[i-1] == 0)continue;sum += candidates[i];used[i] = 1;path.push_back(candidates[i]);backtracking(candidates,target,sum,i+1,used);sum -= candidates[i];used[i] = 0;path.pop_back();}}vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {int n = candidates.size();vector<int> used(n,0);sort(candidates.begin(),candidates.end());backtracking(candidates,target,0,0,used);return res;}
};

使用startIndex進行去重

class Solution {
public:vector<vector<int>> res;vector<int> path;void backtracking(vector<int>& candidates,int target,int sum,int startIndex){if(sum > target) return;if(sum == target){res.push_back(path);return;}for(int i = startIndex;i < candidates.size() && candidates[i] + sum <= target;i++){if(i > startIndex && candidates[i-1] == candidates[i])continue;sum += candidates[i];path.push_back(candidates[i]);backtracking(candidates,target,sum,i+1);sum -= candidates[i];path.pop_back();}}vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {int n = candidates.size();sort(candidates.begin(),candidates.end());backtracking(candidates,target,0,0);return res;}
};

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/167690.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/167690.shtml
英文地址,請注明出處:http://en.pswp.cn/news/167690.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

完美解決:Nginx訪問PHP出現File not found.

目錄 解決方法一&#xff1a; 解決方法二&#xff1a; 遇到 File not found. 出現的問題解決&#xff1a; 解決方法一&#xff1a; 修改nginx的主配置文件。 vi /etc/nginx/nginx.conf location ~ \.php$ { root html; fastcgi_pass …

unity Toggle,初始時默認不選中,若選中則不可取消選中。不寫碼實現其效果

實現效果&#xff1a; 初始默認時&#xff1a; 選中時&#xff1a; 零代碼實現&#xff1a; 步驟1 步驟2 步驟3

[autojs]ui線程中更新控件的值的問題

"ui"; ui.layout(<vertical><button id"autoFloatWindow" text"開啟懸浮窗" textSize"15sp" /><button id"autoService" text"開啟無障礙服務" textSize"15sp" /><button id"…

一篇總結 Linux 系統啟動的幾個匯編指令

學習 Linux 系統啟動流程&#xff0c;必須熟悉幾個匯編指令&#xff0c;總結給大家。 這里不是最全的&#xff0c;只列出一些最常用的匯編指令。 一&#xff0e;數據處理指令 1.數據傳送指令 【MOV指令】 把一個寄存器的值(立即數)賦給另一個寄存器&#xff0c;或者將一個…

Python---函數的參數類型

位置參數 理論上&#xff0c;在函數定義時&#xff0c;我們可以為其定義多個參數。但是在函數調用時&#xff0c;我們也應該傳遞多個參數&#xff0c;正常情況&#xff0c;其要一一對應。 相關鏈接&#xff1a;Python---函數的作用&#xff0c;定義&#xff0c;使用步驟&…

opencv 常用操作指南

1.通道交換 讀取圖像&#xff0c;然后將RGB通道替換成BGR通道&#xff0c;需要注意的是&#xff0c;opencv讀取的圖像默認是BGR。cv2.cvtColor函數可以參考Color Space Conversions img cv2.imread(imori.jpg) img cv2.cvtColor(img, cv2.COLOR_BGR2RGB) cv2.imwrite(answe…

1|1111

1、指定在每天凌晨4&#xff1a;00將該時間點之前的系統日志信息&#xff08;/var/log/messages &#xff09;備份到目錄下/backup&#xff0c;備份后日志文件名顯示格式logfileYY-MM-DD-HH-MM 2、配置ssh免密登陸&#xff1a;客戶端主機通過redhat用戶基于秘鑰驗證方式進行遠…

微服務實戰系列之Nginx

前言 Nginx&#xff1f;寫了那么多文章&#xff0c;為什么今天才輪到它的表演&#xff1f;那是因為它實在太重要了&#xff0c;值得大書特書&#xff0c;特別對待。 當我們遇到單點瓶頸&#xff0c;第一個idea是&#xff1f;Nginx&#xff1b; 當我們需要反向代理&#xff0c;…

機器學習/sklearn筆記:MeanShift

1 算法介紹 一種基于質心的算法通過更新候選質心使其成為給定區域內點的均值候選質心的位置是通過一種稱為“爬山”技術迭代調整的&#xff0c;該技術找到估計的概率密度的局部最大值 1.1 基本形式 給定d維空間的n個數據點集X&#xff0c;那么對于空間中的任意點x的均值漂移…

C#,《小白學程序》第一課:初識程序,變量,數據與顯示

曰&#xff1a;掃地僧練就絕世武功的目的是為了掃地更干凈。 1 引言 編程只是一項技術&#xff0c;如包包子&#xff0c;不是什么高深的科學。 學習程序最不好的方法是先學習枯燥的語法。 學習程序主要是用代碼解決問題。因此&#xff0c;我們拋開所有的語法與諸多廢物&…

React項目中發生空白但不報錯的原因分析和解決?

文章目錄 前言組件渲染問題狀態管理問題異步操作問題代碼錯誤但未拋出異常如果我們使用的是chorme瀏覽器的話&#xff0c;可以下載一個開發者工具&#xff0c;例如下圖&#xff1a;代碼審查使用調試工具日志和輸出檢查外部依賴異步操作終極大法&#xff0c;不到萬不得已不可以使…

python+gurobi求解線性規劃、整數規劃、0-1規劃

文章目錄 簡單回顧線性規劃LP整數規劃IP0-1規劃 簡單回顧 線性規劃是數學規劃中的一類最簡單規劃問題&#xff0c;常見的線性規劃是一個有約束的&#xff0c;變量范圍為有理數的線性規劃。如&#xff1a; 使用matlab的linprog函數即可求解簡單的線性規劃問題&#xff0c;可以參…

【Python 訓練營】N_6 求素數

題目 判斷101-200之間有多少個素數&#xff0c;并輸出所有素數。 分析 判斷素數的方法&#xff1a;用一個數分別去除2到sqrt(這個數)&#xff0c;如果能被整除&#xff0c;則表明此數不是素數&#xff0c;反之是素數。 答案 h 0 leap 1 from math import sqrt from sys …

2023亞太地區數學建模C題思路模型代碼論文

C題的參考思路: 1&#xff0c;問題1的思路: 確定研究問題的主要指標體系(新能源電車的售出數量、安全性指標、充電樁數目、電池續 航里程等)&#xff0c;收集指標的對應數據&#xff0c;檢驗數據是否服從正態性: 若服從正態分布: 0&#xff0c;可考慮優先采用“多元方差分析”模…

Python推導式

python推導式是一種獨特的數據處理方式&#xff0c;可以從一個數據序列構建到另一個新的數據序列的結構體。 Python支持各種數據結構的推導式&#xff1a; 1. 列表&#xff08;list&#xff09;推導式 [表達式 for 變量 in 列表] [out_exp_res for out_exp in input_list] or …

【?用運算放大器設計恒流電流源電壓4V-74V適應范圍 ?】2021-11-29

緣由用運算放大器設計恒流電流源-編程語言-CSDN問答直流恒流源設計&#xff0c;要求用到運算放大器-硬件開發-CSDN問答求助恒流驅動電路&#xff0c;運放端口電壓的問題&#xff1f; - 電路設計論壇 - 電子技術論壇 - 廣受歡迎的專業電子論壇!(不能實現恒流壞的電路設計反面例子…

OpenCV快速入門:特征點檢測與匹配

文章目錄 前言一、角點檢測1.1 角點特征1.1.1 角點特征概念1.1.2 角點的特點1.1.3 關鍵點繪制代碼實現1.1.4 函數解析 1.2 Harris角點檢測1.2.1 Harris角點檢測原理1.2.2 Harris角點檢測公式1.2.3 代碼實現1.2.4 函數解析 1.3 Shi-Tomasi角點檢測1.3.1 Shi-Tomasi角點檢測原理1…

GIT,解決遠程分支沖突

背景&#xff1a;當遠程分支A 與maste 有沖突如何解決–此時無法在這兩個版本之間merge 1、切換到master分支&#xff1a; git checkout master 2、更新master分支代碼&#xff1a; git pull 3、再次切換到自己新建的分支&#xff1a; git checkout add_login_check_func 4、將…

SuperMap iDesktopX如何獲取簡單線的起終端點及坐標

作者&#xff1a;超圖研究院技術支持中心-于丁 SuperMap iDesktopX如何獲取簡單線的起終端點及坐標 在GIS行業應用中&#xff0c;線數據的端點坐標有非常多的用處。 定位和可視化&#xff1a;線數據端點坐標可以用于定位和可視化線要素在空間中的位置。這對于地圖制作、規劃和…

初識Linux(1),看了這篇文章,媽媽再也不用擔心我Linux找不到門了。

文章目錄 前言1. ls 指令例如&#xff1a;只顯示文件名屬性ls顯示文件詳細屬性 ls - l 該操作可以簡寫成ll查看隱藏文件ls -l -a 2.pwd例如&#xff1a;顯示當前目錄所處的路徑類似于windows如下操作: 3.cd 指令例如&#xff1a;改變工作目錄相當于windows如下操作 4.whoami 指…