更新 0078.子集问题 排版格式修复

This commit is contained in:
jinbudaily
2023-07-24 14:16:33 +08:00
parent 6f711891ba
commit 92695ceedd

View File

@ -27,12 +27,12 @@
  []   []
] ]
# 算法公开课 ## 算法公开课
**《代码随想录》算法视频公开课:[回溯算法解决子集问题,树上节点都是目标集和! | LeetCode78.子集](https://www.bilibili.com/video/BV1U84y1q7Ci),相信结合视频再看本篇题解,更有助于大家对本题的理解**。 **[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[回溯算法解决子集问题,树上节点都是目标集和! | LeetCode78.子集](https://www.bilibili.com/video/BV1U84y1q7Ci),相信结合视频再看本篇题解,更有助于大家对本题的理解**。
# 思路 ## 思路
求子集问题和[77.组合](https://programmercarl.com/0077.组合.html)和[131.分割回文串](https://programmercarl.com/0131.分割回文串.html)又不一样了。 求子集问题和[77.组合](https://programmercarl.com/0077.组合.html)和[131.分割回文串](https://programmercarl.com/0131.分割回文串.html)又不一样了。
@ -52,7 +52,7 @@
从图中红线部分,可以看出**遍历这个树的时候,把所有节点都记录下来,就是要求的子集集合**。 从图中红线部分,可以看出**遍历这个树的时候,把所有节点都记录下来,就是要求的子集集合**。
## 回溯三部曲 ### 回溯三部曲
* 递归函数参数 * 递归函数参数
@ -102,8 +102,6 @@ for (int i = startIndex; i < nums.size(); i++) {
} }
``` ```
## C++代码
根据[关于回溯算法,你该了解这些!](https://programmercarl.com/回溯算法理论基础.html)给出的回溯算法模板: 根据[关于回溯算法,你该了解这些!](https://programmercarl.com/回溯算法理论基础.html)给出的回溯算法模板:
``` ```
@ -158,7 +156,7 @@ public:
并不会因为每次递归的下一层就是从i+1开始的。 并不会因为每次递归的下一层就是从i+1开始的。
# 总结 ## 总结
相信大家经过了 相信大家经过了
* 组合问题: * 组合问题:
@ -178,10 +176,10 @@ public:
**而组合问题、分割问题是收集树形结构中叶子节点的结果** **而组合问题、分割问题是收集树形结构中叶子节点的结果**
# 其他语言版本 ## 其他语言版本
## Java ### Java
```java ```java
class Solution { class Solution {
List<List<Integer>> result = new ArrayList<>();// 存放符合条件结果的集合 List<List<Integer>> result = new ArrayList<>();// 存放符合条件结果的集合
@ -205,7 +203,7 @@ class Solution {
} }
``` ```
## Python ### Python
```python ```python
class Solution: class Solution:
def subsets(self, nums): def subsets(self, nums):
@ -224,7 +222,7 @@ class Solution:
path.pop() path.pop()
``` ```
## Go ### Go
```Go ```Go
var ( var (
path []int path []int
@ -248,7 +246,7 @@ func dfs(nums []int, start int) {
} }
``` ```
## Javascript ### Javascript
```Javascript ```Javascript
var subsets = function(nums) { var subsets = function(nums) {
@ -267,7 +265,7 @@ var subsets = function(nums) {
}; };
``` ```
## TypeScript ### TypeScript
```typescript ```typescript
function subsets(nums: number[]): number[][] { function subsets(nums: number[]): number[][] {
@ -287,7 +285,7 @@ function subsets(nums: number[]): number[][] {
}; };
``` ```
## Rust ### Rust
```Rust ```Rust
impl Solution { impl Solution {
@ -311,7 +309,7 @@ impl Solution {
} }
``` ```
## C ### C
```c ```c
int* path; int* path;
@ -369,7 +367,7 @@ int** subsets(int* nums, int numsSize, int* returnSize, int** returnColumnSizes)
} }
``` ```
## Swift ### Swift
```swift ```swift
func subsets(_ nums: [Int]) -> [[Int]] { func subsets(_ nums: [Int]) -> [[Int]] {
@ -392,7 +390,7 @@ func subsets(_ nums: [Int]) -> [[Int]] {
} }
``` ```
## Scala ### Scala
思路一: 使用本题解思路 思路一: 使用本题解思路
@ -451,3 +449,4 @@ object Solution {
<a href="https://programmercarl.com/other/kstar.html" target="_blank"> <a href="https://programmercarl.com/other/kstar.html" target="_blank">
<img src="../pics/网站星球宣传海报.jpg" width="1000"/> <img src="../pics/网站星球宣传海报.jpg" width="1000"/>
</a> </a>