Merge branch 'youngyangyang04:master' into master

This commit is contained in:
Mengyi
2024-06-09 11:20:04 -04:00
committed by GitHub
2 changed files with 54 additions and 11 deletions

View File

@ -403,6 +403,7 @@ class Solution:
```
### Go
(版本一) 双指针
```Go
func threeSum(nums []int) [][]int {
@ -442,6 +443,42 @@ func threeSum(nums []int) [][]int {
return res
}
```
(版本二) 哈希解法
```Go
func threeSum(nums []int) [][]int {
res := make([][]int, 0)
sort.Ints(nums)
// 找出a + b + c = 0
// a = nums[i], b = nums[j], c = -(a + b)
for i := 0; i < len(nums); i++ {
// 排序之后如果第一个元素已经大于零,那么不可能凑成三元组
if nums[i] > 0 {
break
}
// 三元组元素a去重
if i > 0 && nums[i] == nums[i-1] {
continue
}
set := make(map[int]struct{})
for j := i + 1; j < len(nums); j++ {
// 三元组元素b去重
if j > i + 2 && nums[j] == nums[j-1] && nums[j-1] == nums[j-2] {
continue
}
c := -nums[i] - nums[j]
if _, ok := set[c]; ok {
res = append(res, []int{nums[i], nums[j], c})
// 三元组元素c去重
delete(set, c)
} else {
set[nums[j]] = struct{}{}
}
}
}
return res
}
```
### JavaScript:

View File

@ -201,7 +201,7 @@ class Solution:
return result
```
```python
# 递归法
#递归法
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
@ -210,18 +210,24 @@ class Solution:
# self.right = right
class Solution:
def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
levels = []
self.helper(root, 0, levels)
return levels
if not root:
return []
def helper(self, node, level, levels):
levels = []
def traverse(node, level):
if not node:
return
if len(levels) == level:
levels.append([])
levels[level].append(node.val)
self.helper(node.left, level + 1, levels)
self.helper(node.right, level + 1, levels)
traverse(node.left, level + 1)
traverse(node.right, level + 1)
traverse(root, 0)
return levels
```