給定乙個陣列 candidates 和乙個目標數 target ,找出 candidates 中所有可以使數字和為 target 的組合。
candidates 中的每個數字在每個組合中只能使用一次。
說明:
示例 1:
輸入: candidates =
[10,1,2,7,6,1,5], target = 8,
所求解集為:
[[1, 7],
[1, 2, 5],
[2, 6],
[1, 1, 6]
]示例 2:
輸入: candidates =
[2,5,2,1,2], target = 5,
所求解集為:
[[1,2,2],
[5]]
class
solution
else
while
(beginsize()
&& sum+candidates[begin]
<= target)
} vectorint>>
combinationsum2
(vector<
int>
& candidates,
int target)
sort
(candidates.
begin()
, candidates.
end())
;backtrack
(candidates, target,0,
0);return res;
}private
: vectorint>> res;
vector<
int> nums;
};
可能是習慣減法了?
class
solution
while
(startsize()
&&target-candidates[start]
>=0)
} vectorint>>
combinationsum2
(vector<
int>
& candidates,
int target)
};
leetcode刷題 40組合總和2
給定乙個陣列 candidates 和乙個目標數 target 找出 candidates 中所有可以使數字和為 target 的組合。candidates 中的每個數字在每個組合中只能使用一次。此題思路與39題類似,利用回溯的方式,但是難點在於不能重複利用。避免重複要讓同一層級不出現相同的元素,卻...
LeetCode刷題筆記 39 組數總和
給定乙個無重複元素的陣列 candidates 和乙個目標數 target 找出 candidates 中所有可以使數字和為 target 的組合。candidates 中的數字可以無限制重複被選取。說明 所有數字 包括 target 都是正整數。解集不能包含重複的組合。示例 1 輸入 candid...
Leetcode刷題筆記
1.兩數之和給定乙個整數陣列nums 和乙個目標值target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。ps 你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。思路 用target減去nums中的每乙個數,並設立乙個字典來記錄對應的下標 class...