LeetCode 40. 组合总和 II(排列组合 回溯)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 40. 组合总和 II(排列组合 回溯)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
給定一個數組 candidates 和一個目標數 target ,找出 candidates 中所有可以使數字和為 target 的組合。
candidates 中的每個數字在每個組合中只能使用一次。
說明:
所有數字(包括目標數)都是正整數。
解集不能包含重復的組合。
來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/combination-sum-ii
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
- 類似題目
LeetCode 216. 組合總和 III(排列組合 回溯)
LeetCode 39. 組合總和(排列組合 回溯)
2. 回溯求解
class Solution { public:vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {sort(candidates.begin(), candidates.end());vector<vector<int>> ans;vector<int> subset;bt(0,0,target,subset,ans,candidates);return ans;}void bt(int i, int sum, int &target, vector<int> &subset, vector<vector<int>> &ans, vector<int> &candidates) {if(i > candidates.size() || sum > target)return;if(i <= candidates.size() && sum == target){ans.push_back(subset);return;}for(int j = i; j < candidates.size(); j++){if(j > i && candidates[j-1] == candidates[j])continue;subset.push_back(candidates[j]);bt(j+1, sum+candidates[j], target, subset, ans, candidates);subset.pop_back();}} };8 ms 7.1 MB
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 40. 组合总和 II(排列组合 回溯)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1335. 工作计划的
- 下一篇: LeetCode 74. 搜索二维矩阵(