mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 19:44:45 +08:00
Merge branch 'youngyangyang04:master' into master
This commit is contained in:
@ -348,8 +348,32 @@ class Solution {
|
|||||||
```
|
```
|
||||||
|
|
||||||
Python:
|
Python:
|
||||||
|
```python
|
||||||
|
// 递归法
|
||||||
|
# Definition for a binary tree node.
|
||||||
|
# class TreeNode:
|
||||||
|
# def __init__(self, val=0, left=None, right=None):
|
||||||
|
# self.val = val
|
||||||
|
# self.left = left
|
||||||
|
# self.right = right
|
||||||
|
class Solution:
|
||||||
|
def hasPathSum(self, root: TreeNode, targetSum: int) -> bool:
|
||||||
|
def isornot(root,targetSum)->bool:
|
||||||
|
if (not root.left) and (not root.right) and targetSum == 0:return True // 遇到叶子节点,并且计数为0
|
||||||
|
if (not root.left) and (not root.right):return False //遇到叶子节点,计数不为0
|
||||||
|
if root.left:
|
||||||
|
targetSum -= root.left.val //只有左节点
|
||||||
|
if isornot(root.left,targetSum):return True //递归,处理节点
|
||||||
|
targetSum += root.left.val //回溯
|
||||||
|
if root.right:
|
||||||
|
targetSum -= root.right.val //只有右节点
|
||||||
|
if isornot(root.right,targetSum):return True //递归,处理右节点
|
||||||
|
targetSum += root.right.val //回溯
|
||||||
|
return False
|
||||||
|
|
||||||
|
if root == None:return False //别忘记处理空TreeNode
|
||||||
|
else:return isornot(root,targetSum-root.val)
|
||||||
|
```
|
||||||
Go:
|
Go:
|
||||||
|
|
||||||
JavaScript:
|
JavaScript:
|
||||||
|
@ -160,7 +160,28 @@ Python:
|
|||||||
|
|
||||||
|
|
||||||
Go:
|
Go:
|
||||||
|
```Go
|
||||||
|
func findLength(A []int, B []int) int {
|
||||||
|
m, n := len(A), len(B)
|
||||||
|
res := 0
|
||||||
|
dp := make([][]int, m+1)
|
||||||
|
for i := 0; i <= m; i++ {
|
||||||
|
dp[i] = make([]int, n+1)
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 1; i <= m; i++ {
|
||||||
|
for j := 1; j <= n; j++ {
|
||||||
|
if A[i-1] == B[j-1] {
|
||||||
|
dp[i][j] = dp[i-1][j-1] + 1
|
||||||
|
}
|
||||||
|
if dp[i][j] > res {
|
||||||
|
res = dp[i][j]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -170,7 +170,53 @@ class Solution {
|
|||||||
```
|
```
|
||||||
|
|
||||||
Python:
|
Python:
|
||||||
|
```python3
|
||||||
|
# 前序遍历-递归-LC144_二叉树的前序遍历
|
||||||
|
class Solution:
|
||||||
|
def preorderTraversal(self, root: TreeNode) -> List[int]:
|
||||||
|
# 保存结果
|
||||||
|
result = []
|
||||||
|
|
||||||
|
def traversal(root: TreeNode):
|
||||||
|
if root == None:
|
||||||
|
return
|
||||||
|
result.append(root.val) # 前序
|
||||||
|
traversal(root.left) # 左
|
||||||
|
traversal(root.right) # 右
|
||||||
|
|
||||||
|
traversal(root)
|
||||||
|
return result
|
||||||
|
|
||||||
|
# 中序遍历-递归-LC94_二叉树的中序遍历
|
||||||
|
class Solution:
|
||||||
|
def inorderTraversal(self, root: TreeNode) -> List[int]:
|
||||||
|
result = []
|
||||||
|
|
||||||
|
def traversal(root: TreeNode):
|
||||||
|
if root == None:
|
||||||
|
return
|
||||||
|
traversal(root.left) # 左
|
||||||
|
result.append(root.val) # 中序
|
||||||
|
traversal(root.right) # 右
|
||||||
|
|
||||||
|
traversal(root)
|
||||||
|
return result
|
||||||
|
|
||||||
|
# 后序遍历-递归-LC145_二叉树的后序遍历
|
||||||
|
class Solution:
|
||||||
|
def postorderTraversal(self, root: TreeNode) -> List[int]:
|
||||||
|
result = []
|
||||||
|
|
||||||
|
def traversal(root: TreeNode):
|
||||||
|
if root == None:
|
||||||
|
return
|
||||||
|
traversal(root.left) # 左
|
||||||
|
traversal(root.right) # 右
|
||||||
|
result.append(root.val) # 后序
|
||||||
|
|
||||||
|
traversal(root)
|
||||||
|
return result
|
||||||
|
```
|
||||||
|
|
||||||
Go:
|
Go:
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user