Skip to content

Commit 97c8824

Browse files
committed
new-feat: finish 530_easy
1 parent 5fc7f53 commit 97c8824

File tree

2 files changed

+41
-1
lines changed

2 files changed

+41
-1
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,4 +162,4 @@ cython_debug/
162162
# 未做出来的题目
163163
#/2024/mon_4/7/375. Guess Number Higher or Lower II.py # 已经做出来了
164164
#/2024/mon_4/7/375. Guess Number Higher or Lower IIV2.py #
165-
/python/2024/mon_5/8/399. Evaluate Division.py
165+
/python/2024/mon_5/9/399. Evaluate Division.py
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Definition for a binary tree node.
2+
# class TreeNode:
3+
# def __init__(self, val=0, left=None, right=None):
4+
# self.val = val
5+
# self.left = left
6+
# self.right = right
7+
import sys
8+
from typing import Optional
9+
10+
from python.util.core import tree_util
11+
from python.util.core.tree_util import TreeNode
12+
13+
14+
class Solution:
15+
def getMinimumDifference(self, root: Optional[TreeNode]) -> int:
16+
"""
17+
题目给了这个是一个 BST
18+
可以通过递归查找实现,本身就是一个中序遍历
19+
T(n): O(n)
20+
S(n): O(log(n))
21+
"""
22+
_min_diff: int = sys.maxsize
23+
_last_val = sys.maxsize
24+
25+
def recurse2get_min_sum_diff(_root: Optional[TreeNode]):
26+
nonlocal _min_diff, _last_val
27+
if _root is None:
28+
return
29+
recurse2get_min_sum_diff(_root.left)
30+
_min_diff = min(_min_diff, abs(_last_val - _root.val))
31+
_last_val = _root.val
32+
recurse2get_min_sum_diff(_root.right)
33+
34+
recurse2get_min_sum_diff(root)
35+
return _min_diff
36+
37+
38+
if __name__ == "__main__":
39+
s = Solution()
40+
print(s.getMinimumDifference(tree_util.list2tree_breadth_first_traverse([4, 2, 6, 1, 3])))

0 commit comments

Comments
 (0)