diff --git a/problems/0047.全排列II.md b/problems/0047.全排列II.md index afede33a..4fed8a5c 100644 --- a/problems/0047.全排列II.md +++ b/problems/0047.全排列II.md @@ -31,9 +31,9 @@ * 1 <= nums.length <= 8 * -10 <= nums[i] <= 10 -# 算法公开课 +## 算法公开课 -**《代码随想录》算法视频公开课:[回溯算法求解全排列,如何去重?| LeetCode:47.全排列 II](https://www.bilibili.com/video/BV1R84y1i7Tm/),相信结合视频再看本篇题解,更有助于大家对本题的理解**。 +**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html):[回溯算法求解全排列,如何去重?| LeetCode:47.全排列 II](https://www.bilibili.com/video/BV1R84y1i7Tm/),相信结合视频再看本篇题解,更有助于大家对本题的理解**。 ## 思路 @@ -58,7 +58,7 @@ 在[46.全排列](https://programmercarl.com/0046.全排列.html)中已经详细讲解了排列问题的写法,在[40.组合总和II](https://programmercarl.com/0040.组合总和II.html) 、[90.子集II](https://programmercarl.com/0090.子集II.html)中详细讲解了去重的写法,所以这次我就不用回溯三部曲分析了,直接给出代码,如下: -## C++代码 + ```CPP class Solution { @@ -170,7 +170,7 @@ if (i > 0 && nums[i] == nums[i - 1] && used[i - 1] == true) { if (i > 0 && nums[i] == nums[i - 1]) { continue; } -``` +``` 其实并不行,一定要加上 `used[i - 1] == false`或者`used[i - 1] == true`,因为 used[i - 1] 要一直是 true 或者一直是false 才可以,而不是 一会是true 一会又是false。 所以这个条件要写上。 @@ -179,7 +179,7 @@ if (i > 0 && nums[i] == nums[i - 1]) { ## 其他语言版本 -### java +### Java ```java class Solution { @@ -221,7 +221,7 @@ class Solution { } ``` -### python +Python ```python class Solution: @@ -526,3 +526,4 @@ object Solution { +