更新 0040.组合总和II 排版格式修复

This commit is contained in:
jinbudaily
2023-07-24 11:17:47 +08:00
parent 2ed8beef41
commit c3827c4344

View File

@ -41,13 +41,11 @@ candidates 中的每个数字在每个组合中只能使用一次。
]
```
# 算法公开课
## 算法公开课
**《代码随想录》算法视频公开课:[回溯算法中的去重,树层去重树枝去重,你弄清楚了没?| LeetCode:40.组合总和II](https://www.bilibili.com/video/BV12V4y1V73A),相信结合视频再看本篇题解,更有助于大家对本题的理解**。
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[回溯算法中的去重,树层去重树枝去重,你弄清楚了没?| LeetCode:40.组合总和II](https://www.bilibili.com/video/BV12V4y1V73A),相信结合视频再看本篇题解,更有助于大家对本题的理解**。
# 思路
## 思路
这道题目和[39.组合总和](https://programmercarl.com/0039.组合总和.html)如下区别:
@ -86,7 +84,7 @@ candidates 中的每个数字在每个组合中只能使用一次。
可以看到图中,每个节点相对于 [39.组合总和](https://mp.weixin.qq.com/s/FLg8G6EjVcxBjwCbzpACPw)我多加了used数组这个used数组下面会重点介绍。
## 回溯三部曲
### 回溯三部曲
* **递归函数参数**
@ -217,7 +215,7 @@ public:
* 时间复杂度: O(n * 2^n)
* 空间复杂度: O(n)
## 补充
### 补充
这里直接用startIndex来去重也是可以的 就不用used数组了。
@ -257,7 +255,7 @@ public:
```
# 总结
## 总结
本题同样是求组合总和但就是因为其数组candidates有重复元素而要求不能有重复的组合所以相对于[39.组合总和](https://programmercarl.com/0039.组合总和.html)难度提升了不少。
@ -265,14 +263,10 @@ public:
所以Carl有必要把去重的这块彻彻底底的给大家讲清楚**就连“树层去重”和“树枝去重”都是我自创的词汇,希望对大家理解有帮助!**
## 其他语言版本
# 其他语言版本
## Java
### Java
**使用标记数组**
```Java
class Solution {
@ -355,7 +349,7 @@ class Solution {
}
```
## Python
### Python
回溯
```python
class Solution:
@ -442,7 +436,7 @@ class Solution:
self.combinationSumHelper(candidates, target - candidates[i], i + 1, path, results)
path.pop()
```
## Go
### Go
主要在于如何在回溯中去重
**使用used数组**
@ -518,7 +512,7 @@ func dfs(candidates []int, start int, target int) {
}
}
```
## javaScript
### JavaScript
```js
/**
@ -588,7 +582,7 @@ var combinationSum2 = function(candidates, target) {
};
```
## TypeScript
### TypeScript
```typescript
function combinationSum2(candidates: number[], target: number): number[][] {
@ -619,7 +613,7 @@ function combinationSum2(candidates: number[], target: number): number[][] {
};
```
## Rust
### Rust
```Rust
impl Solution {
@ -654,7 +648,7 @@ impl Solution {
}
```
## C
### C
```c
int* path;
@ -716,7 +710,7 @@ int** combinationSum2(int* candidates, int candidatesSize, int target, int* retu
}
```
## Swift
### Swift
```swift
func combinationSum2(_ candidates: [Int], _ target: Int) -> [[Int]] {
@ -749,7 +743,7 @@ func combinationSum2(_ candidates: [Int], _ target: Int) -> [[Int]] {
```
## Scala
### Scala
```scala
object Solution {
@ -784,3 +778,4 @@ object Solution {
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
</a>