Skip to content

Commit 4c64374

Browse files
committedJul 17, 2021
solves 783 and 530
1 parent 68aacea commit 4c64374

5 files changed

+88
-2
lines changed
 

‎README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@
139139
| 509 | [Fibonacci Number](https://leetcode.com/problems/fibonacci-number) | Easy | [![Java](assets/java.png)](src/FibonacciNumber.java) [![Python](assets/python.png)](python/fibonacci_number.py) |
140140
| 520 | [Detect Capital](https://leetcode.com/problems/detect-capital) | Easy | [![Java](assets/java.png)](src/DetectCapital.java) [![Python](assets/python.png)](python/detect_capital.py) |
141141
| 521 | [Longest Uncommon Subsequence I](https://leetcode.com/problems/longest-uncommon-subsequence-i) | Easy | [![Java](assets/java.png)](src/LongestUncommonSubsequenceI.java) [![Python](assets/python.png)](python/longest_uncommon_subsequence_I.py) |
142-
| 530 | [Minimum Absolute Difference in BST](https://leetcode.com/problems/minimum-absolute-difference-in-bst) | Easy | |
142+
| 530 | [Minimum Absolute Difference in BST](https://leetcode.com/problems/minimum-absolute-difference-in-bst) | Easy | [![Java](assets/java.png)](src/MinimumAbsoluteDifferenceInBST.java) [![Python](assets/python.png)](python/minimum_absolute_difference_in_bst.py) |
143143
| 532 | [K - Diff Pairs in Array](https://leetcode.com/problems/k-diff-pairs-in-an-array) | Easy | |
144144
| 538 | [Convert BST to Greater Tree](https://leetcode.com/problems/convert-bst-to-greater-tree) | Easy | |
145145
| 541 | [Reverse String II](https://leetcode.com/problems/reverse-string-ii) | Easy | |
@@ -205,7 +205,7 @@
205205
| 762 | [Prime Number of Set Bits in Primary Representation](https://leetcode.com/problems/prime-number-of-set-bits-in-binary-representation) | Easy | |
206206
| 766 | [Toeplitz Matrix](https://leetcode.com/problems/toeplitz-matrix) | Easy | |
207207
| 771 | [Jewels and Stones](https://leetcode.com/problems/jewels-and-stones) | Easy | |
208-
| 783 | [Minimum Distance Between BST Nodes](https://leetcode.com/problems/minimum-distance-between-bst-nodes) | Easy | |
208+
| 783 | [Minimum Distance Between BST Nodes](https://leetcode.com/problems/minimum-distance-between-bst-nodes) | Easy | [![Java](assets/java.png)](src/MinimumAbsoluteDifferenceInBST.java) [![Python](assets/python.png)](python/minimum_distance_between_bst_nodes.py) |
209209
| 788 | [Rotated Digits](https://leetcode.com/problems/rotated-digits) | Easy | |
210210
| 796 | [Rotate String](https://leetcode.com/problems/rotate-string) | Easy | |
211211
| 800 | [Similar RGB Color](https://leetcode.com/problems/similar-rgb-color) | Easy | |
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
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+
8+
class Solution:
9+
def __init__(self):
10+
self.infinity = float('inf')
11+
self.result = self.infinity
12+
13+
def computeMinimumAbsDifference(self, root: TreeNode, left: float, right: float):
14+
if root is None: return
15+
self.result = min(self.result, root.val - left, right- root.val)
16+
self.computeMinimumAbsDifference(root.left, left, root.val)
17+
self.computeMinimumAbsDifference(root.right, root.val, right)
18+
19+
def getMinimumDifference(self, root: TreeNode) -> int:
20+
self.computeMinimumAbsDifference(root, -self.infinity, self.infinity)
21+
return int(self.result)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
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+
8+
9+
class Solution:
10+
def __init__(self):
11+
self.infinity = float('inf')
12+
self.result = self.infinity
13+
14+
def computeMinimumAbsDifference(self, root: TreeNode, left: float, right: float):
15+
if root is None: return
16+
self.result = min(self.result, root.val - left, right- root.val)
17+
self.computeMinimumAbsDifference(root.left, left, root.val)
18+
self.computeMinimumAbsDifference(root.right, root.val, right)
19+
20+
def minDiffInBST(self, root: TreeNode) -> int:
21+
self.computeMinimumAbsDifference(root, -self.infinity, self.infinity)
22+
return int(self.result)
+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
public class MinimumAbsoluteDifferenceInBST {
2+
long result = Integer.MAX_VALUE;
3+
4+
public int getMinimumDifference(TreeNode root) {
5+
computeMinAbsoluteDifference(root, Integer.MIN_VALUE, Integer.MAX_VALUE);
6+
return (int) result;
7+
}
8+
9+
public void computeMinAbsoluteDifference(TreeNode root, long left, long right) {
10+
if (root == null) return;
11+
result = Math.min(result, Math.min(root.val - left, right - root.val));
12+
computeMinAbsoluteDifference(root.left, left, root.val);
13+
computeMinAbsoluteDifference(root.right, root.val, right);
14+
}
15+
}
+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
class TreeNode {
2+
int val;
3+
TreeNode left;
4+
TreeNode right;
5+
TreeNode() {}
6+
TreeNode(int val) { this.val = val; }
7+
TreeNode(int val, TreeNode left, TreeNode right) {
8+
this.val = val;
9+
this.left = left;
10+
this.right = right;
11+
}
12+
}
13+
14+
public class MinimumDistanceBetweenBSTNodes {
15+
long result = Integer.MAX_VALUE;
16+
17+
public int minDiffInBST(TreeNode root) {
18+
computeMinAbsoluteDifference(root, Integer.MIN_VALUE, Integer.MAX_VALUE);
19+
return (int) result;
20+
}
21+
22+
public void computeMinAbsoluteDifference(TreeNode root, long left, long right) {
23+
if (root == null) return;
24+
result = Math.min(result, Math.min(root.val - left, right - root.val));
25+
computeMinAbsoluteDifference(root.left, left, root.val);
26+
computeMinAbsoluteDifference(root.right, root.val, right);
27+
}
28+
}

0 commit comments

Comments
 (0)