From 7a41318056f7aa10ef7d4653dd1c3fb988b64448 Mon Sep 17 00:00:00 2001 From: programmercarl <826123027@qq.com> Date: Fri, 21 Apr 2023 22:27:05 +0800 Subject: [PATCH] Update --- problems/0047.全排列II.md | 13 +++++++++++++ problems/0055.跳跃游戏.md | 2 +- problems/0056.合并区间.md | 1 - problems/0112.路径总和.md | 2 +- problems/0455.分发饼干.md | 2 +- 5 files changed, 16 insertions(+), 4 deletions(-) diff --git a/problems/0047.全排列II.md b/problems/0047.全排列II.md index b4f7a4d8..b1908fb4 100644 --- a/problems/0047.全排列II.md +++ b/problems/0047.全排列II.md @@ -158,6 +158,19 @@ if (i > 0 && nums[i] == nums[i - 1] && used[i - 1] == true) { 所以我通过举[1,1,1]的例子,把这两个去重的逻辑分别抽象成树形结构,大家可以一目了然:为什么两种写法都可以以及哪一种效率更高! +这里可能大家又有疑惑,既然 `used[i - 1] == false`也行而`used[i - 1] == true`也行,那为什么还要写这个条件呢? + +直接这样写 不就完事了? + +```cpp +if (i > 0 && nums[i] == nums[i - 1]) { + continue; +} +``` + +其实并不行,一定要加上 `used[i - 1] == false`或者`used[i - 1] == true`,因为 used[i - 1] 要一直是 true 或者一直是false 才可以,而不是 一会是true 一会又是false。 所以这个条件要写上。 + + 是不是豁然开朗了!! ## 其他语言版本 diff --git a/problems/0055.跳跃游戏.md b/problems/0055.跳跃游戏.md index a898263d..fa76bc27 100644 --- a/problems/0055.跳跃游戏.md +++ b/problems/0055.跳跃游戏.md @@ -46,8 +46,8 @@ 如图: +![](https://code-thinking-1253855093.file.myqcloud.com/pics/20230203105634.png) -![55.跳跃游戏](https://code-thinking-1253855093.file.myqcloud.com/pics/20201124154758229-20230310135019977.png) i每次移动只能在cover的范围内移动,每移动一个元素,cover得到该元素数值(新的覆盖范围)的补充,让i继续移动下去。 diff --git a/problems/0056.合并区间.md b/problems/0056.合并区间.md index d467ab1a..08a3cb31 100644 --- a/problems/0056.合并区间.md +++ b/problems/0056.合并区间.md @@ -106,7 +106,6 @@ class Solution { } } -} ``` ```java // 版本2 diff --git a/problems/0112.路径总和.md b/problems/0112.路径总和.md index e412d38e..43a623b5 100644 --- a/problems/0112.路径总和.md +++ b/problems/0112.路径总和.md @@ -17,7 +17,7 @@ 示例: 给定如下二叉树,以及目标和 sum = 22, -![112.路径总和1](https://img-blog.csdnimg.cn/20210203160355234.png) +![](https://code-thinking-1253855093.file.myqcloud.com/pics/20230407210247.png) 返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径 5->4->11->2。 diff --git a/problems/0455.分发饼干.md b/problems/0455.分发饼干.md index 63525b03..e525175b 100644 --- a/problems/0455.分发饼干.md +++ b/problems/0455.分发饼干.md @@ -44,7 +44,7 @@ 如图: -![](https://code-thinking-1253855093.file.myqcloud.com/pics/20230203105634.png) +![](https://code-thinking-1253855093.file.myqcloud.com/pics/20230405225628.png) 这个例子可以看出饼干9只有喂给胃口为7的小孩,这样才是整体最优解,并想不出反例,那么就可以撸代码了。