“树支” -> ”树枝“

This commit is contained in:
bqlin
2021-12-19 11:54:22 +08:00
parent 440f94447a
commit 9e70fbc528
5 changed files with 9 additions and 9 deletions

View File

@ -128,7 +128,7 @@ if (sum == target) {
我在图中将used的变化用橘黄色标注上可以看出在candidates[i] == candidates[i - 1]相同的情况下: 我在图中将used的变化用橘黄色标注上可以看出在candidates[i] == candidates[i - 1]相同的情况下:
* used[i - 1] == true说明同一树candidates[i - 1]使用过 * used[i - 1] == true说明同一树candidates[i - 1]使用过
* used[i - 1] == false说明同一树层candidates[i - 1]使用过 * used[i - 1] == false说明同一树层candidates[i - 1]使用过
**这块去重的逻辑很抽象,网上搜的题解基本没有能讲清楚的,如果大家之前思考过这个问题或者刷过这道题目,看到这里一定会感觉通透了很多!** **这块去重的逻辑很抽象,网上搜的题解基本没有能讲清楚的,如果大家之前思考过这个问题或者刷过这道题目,看到这里一定会感觉通透了很多!**
@ -137,7 +137,7 @@ if (sum == target) {
```CPP ```CPP
for (int i = startIndex; i < candidates.size() && sum + candidates[i] <= target; i++) { for (int i = startIndex; i < candidates.size() && sum + candidates[i] <= target; i++) {
// used[i - 1] == true说明同一树candidates[i - 1]使用过 // used[i - 1] == true说明同一树candidates[i - 1]使用过
// used[i - 1] == false说明同一树层candidates[i - 1]使用过 // used[i - 1] == false说明同一树层candidates[i - 1]使用过
// 要对同一树层使用过的元素进行跳过 // 要对同一树层使用过的元素进行跳过
if (i > 0 && candidates[i] == candidates[i - 1] && used[i - 1] == false) { if (i > 0 && candidates[i] == candidates[i - 1] && used[i - 1] == false) {
@ -169,7 +169,7 @@ private:
return; return;
} }
for (int i = startIndex; i < candidates.size() && sum + candidates[i] <= target; i++) { for (int i = startIndex; i < candidates.size() && sum + candidates[i] <= target; i++) {
// used[i - 1] == true说明同一树candidates[i - 1]使用过 // used[i - 1] == true说明同一树candidates[i - 1]使用过
// used[i - 1] == false说明同一树层candidates[i - 1]使用过 // used[i - 1] == false说明同一树层candidates[i - 1]使用过
// 要对同一树层使用过的元素进行跳过 // 要对同一树层使用过的元素进行跳过
if (i > 0 && candidates[i] == candidates[i - 1] && used[i - 1] == false) { if (i > 0 && candidates[i] == candidates[i - 1] && used[i - 1] == false) {
@ -404,7 +404,7 @@ func backtracking(startIndex,sum,target int,candidates,trcak []int,res *[][]int,
} }
if sum>target{return} if sum>target{return}
//回溯 //回溯
// used[i - 1] == true说明同一树candidates[i - 1]使用过 // used[i - 1] == true说明同一树candidates[i - 1]使用过
// used[i - 1] == false说明同一树层candidates[i - 1]使用过 // used[i - 1] == false说明同一树层candidates[i - 1]使用过
for i:=startIndex;i<len(candidates);i++{ for i:=startIndex;i<len(candidates);i++{
if i>0&&candidates[i]==candidates[i-1]&&history[i-1]==false{ if i>0&&candidates[i]==candidates[i-1]&&history[i-1]==false{

View File

@ -65,7 +65,7 @@ private:
return; return;
} }
for (int i = 0; i < nums.size(); i++) { for (int i = 0; i < nums.size(); i++) {
// used[i - 1] == true说明同一树nums[i - 1]使用过 // used[i - 1] == true说明同一树nums[i - 1]使用过
// used[i - 1] == false说明同一树层nums[i - 1]使用过 // used[i - 1] == false说明同一树层nums[i - 1]使用过
// 如果同一树层nums[i - 1]使用过则直接跳过 // 如果同一树层nums[i - 1]使用过则直接跳过
if (i > 0 && nums[i] == nums[i - 1] && used[i - 1] == false) { if (i > 0 && nums[i] == nums[i - 1] && used[i - 1] == false) {
@ -183,7 +183,7 @@ class Solution {
} }
//如果同⼀树⽀nums[i]没使⽤过开始处理 //如果同⼀树⽀nums[i]没使⽤过开始处理
if (used[i] == false) { if (used[i] == false) {
used[i] = true;//标记同⼀树⽀nums[i]使⽤过,防止同一树重复使用 used[i] = true;//标记同⼀树⽀nums[i]使⽤过,防止同一树重复使用
path.add(nums[i]); path.add(nums[i]);
backTrack(nums, used); backTrack(nums, used);
path.remove(path.size() - 1);//回溯说明同⼀树层nums[i]使⽤过,防止下一树层重复 path.remove(path.size() - 1);//回溯说明同⼀树层nums[i]使⽤过,防止下一树层重复

View File

@ -55,7 +55,7 @@ private:
void backtracking(vector<int>& nums, int startIndex, vector<bool>& used) { void backtracking(vector<int>& nums, int startIndex, vector<bool>& used) {
result.push_back(path); result.push_back(path);
for (int i = startIndex; i < nums.size(); i++) { for (int i = startIndex; i < nums.size(); i++) {
// used[i - 1] == true说明同一树candidates[i - 1]使用过 // used[i - 1] == true说明同一树candidates[i - 1]使用过
// used[i - 1] == false说明同一树层candidates[i - 1]使用过 // used[i - 1] == false说明同一树层candidates[i - 1]使用过
// 而我们要对同一树层使用过的元素进行跳过 // 而我们要对同一树层使用过的元素进行跳过
if (i > 0 && nums[i] == nums[i - 1] && used[i - 1] == false) { if (i > 0 && nums[i] == nums[i - 1] && used[i - 1] == false) {

View File

@ -50,7 +50,7 @@ for (int i = startIndex; i < candidates.size() && sum + candidates[i] <= target;
我在图中将used的变化用橘黄色标注上可以看出在candidates[i] == candidates[i - 1]相同的情况下: 我在图中将used的变化用橘黄色标注上可以看出在candidates[i] == candidates[i - 1]相同的情况下:
* used[i - 1] == true说明同一树candidates[i - 1]使用过 * used[i - 1] == true说明同一树candidates[i - 1]使用过
* used[i - 1] == false说明同一树层candidates[i - 1]使用过 * used[i - 1] == false说明同一树层candidates[i - 1]使用过
**这块去重的逻辑很抽象,网上搜的题解基本没有能讲清楚的,如果大家之前思考过这个问题或者刷过这道题目,看到这里一定会感觉通透了很多!** **这块去重的逻辑很抽象,网上搜的题解基本没有能讲清楚的,如果大家之前思考过这个问题或者刷过这道题目,看到这里一定会感觉通透了很多!**

View File

@ -142,7 +142,7 @@ for (int i = startIndex; i < candidates.size() && sum + candidates[i] <= target;
我在图中将used的变化用橘黄色标注上**可以看出在candidates[i] == candidates[i - 1]相同的情况下:** 我在图中将used的变化用橘黄色标注上**可以看出在candidates[i] == candidates[i - 1]相同的情况下:**
* used[i - 1] == true说明同一树candidates[i - 1]使用过 * used[i - 1] == true说明同一树candidates[i - 1]使用过
* used[i - 1] == false说明同一树层candidates[i - 1]使用过 * used[i - 1] == false说明同一树层candidates[i - 1]使用过
**这块去重的逻辑很抽象,网上搜的题解基本没有能讲清楚的,如果大家之前思考过这个问题或者刷过这道题目,看到这里一定会感觉通透了很多!** **这块去重的逻辑很抽象,网上搜的题解基本没有能讲清楚的,如果大家之前思考过这个问题或者刷过这道题目,看到这里一定会感觉通透了很多!**