Skip to content

Commit 261127f

Browse files
authored
Merge branch 'neetcode-gh:main' into main
2 parents 1c50855 + bfc3639 commit 261127f

File tree

5 files changed

+97
-2
lines changed

5 files changed

+97
-2
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ If you would like to have collaborator permissions on the repo to merge your own
226226
<sub>[0110 - Balanced Binary Tree](https://leetcode.com/problems/balanced-binary-tree/)</sub> | <sub><div align='center'>[✔️](c%2F0110-balanced-binary-tree.c)</div></sub> | <sub><div align='center'>[✔️](cpp%2F0110-balanced-binary-tree.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0110-balanced-binary-tree.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0110-balanced-binary-tree.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0110-balanced-binary-tree.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0110-balanced-binary-tree.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0110-balanced-binary-tree.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0110-balanced-binary-tree.py)</div></sub> | <sub><div align='center'>[✔️](ruby%2F0110-balanced-binary-tree.rb)</div></sub> | <sub><div align='center'>[✔️](rust%2F0110-balanced-binary-tree.rs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](swift%2F0110-balanced-binary-tree.swift)</div></sub> | <sub><div align='center'>[✔️](typescript%2F0110-balanced-binary-tree.ts)</div></sub>
227227
<sub>[0100 - Same Tree](https://leetcode.com/problems/same-tree/)</sub> | <sub><div align='center'>[✔️](c%2F0100-same-tree.c)</div></sub> | <sub><div align='center'>[✔️](cpp%2F0100-same-tree.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0100-same-tree.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0100-same-tree.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0100-same-tree.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0100-same-tree.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0100-same-tree.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0100-same-tree.py)</div></sub> | <sub><div align='center'>[✔️](ruby%2F0100-same-tree.rb)</div></sub> | <sub><div align='center'>[✔️](rust%2F0100-same-tree.rs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](swift%2F0100-same-tree.swift)</div></sub> | <sub><div align='center'>[✔️](typescript%2F0100-same-tree.ts)</div></sub>
228228
<sub>[0572 - Subtree of Another Tree](https://leetcode.com/problems/subtree-of-another-tree/)</sub> | <sub><div align='center'>[✔️](c%2F0572-subtree-of-another-tree.c)</div></sub> | <sub><div align='center'>[✔️](cpp%2F0572-subtree-of-another-tree.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0572-subtree-of-another-tree.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0572-subtree-of-another-tree.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0572-subtree-of-another-tree.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0572-subtree-of-another-tree.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0572-subtree-of-another-tree.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0572-subtree-of-another-tree.py)</div></sub> | <sub><div align='center'>[✔️](ruby%2F0572-subtree-of-another-tree.rb)</div></sub> | <sub><div align='center'>[✔️](rust%2F0572-subtree-of-another-tree.rs)</div></sub> | <sub><div align='center'>[✔️](scala%2F0572-subtree-of-another-tree.scala)</div></sub> | <sub><div align='center'>[✔️](swift%2F0572-subtree-of-another-tree.swift)</div></sub> | <sub><div align='center'>[✔️](typescript%2F0572-subtree-of-another-tree.ts)</div></sub>
229-
<sub>[0108 - Convert Sorted Array to Binary Search Tree](https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/)</sub> | <sub><div align='center'>[✔️](c%2F0108-convert-sorted-array-to-binary-search-tree.c)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0108-convert-sorted-array-to-binary-search-tree.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0108-convert-sorted-array-to-binary-search-tree.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0108-convert-sorted-array-to-binary-search-tree.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0108-convert-sorted-array-to-binary-search-tree.kt)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
229+
<sub>[0108 - Convert Sorted Array to Binary Search Tree](https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/)</sub> | <sub><div align='center'>[✔️](c%2F0108-convert-sorted-array-to-binary-search-tree.c)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0108-convert-sorted-array-to-binary-search-tree.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0108-convert-sorted-array-to-binary-search-tree.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0108-convert-sorted-array-to-binary-search-tree.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0108-convert-sorted-array-to-binary-search-tree.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0108-convert-sorted-array-to-binary-search-tree.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
230230
<sub>[0617 - Merge Two Binary Trees](https://leetcode.com/problems/merge-two-binary-trees/)</sub> | <sub><div align='center'>[✔️](c%2F0617-merge-two-binary-trees.c)</div></sub> | <sub><div align='center'>[✔️](cpp%2F0617-merge-two-binary-trees.cpp)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](dart%2F0617-merge-two-binary-trees.dart)</div></sub> | <sub><div align='center'>[✔️](go%2F0617-merge-two-binary-trees.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0617-merge-two-binary-trees.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0617-merge-two-binary-trees.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0617-merge-two-binary-trees.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0617-merge-two-binary-trees.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
231231
<sub>[0112 - Path Sum](https://leetcode.com/problems/path-sum/)</sub> | <sub><div align='center'>[✔️](c%2F0112-path-sum.c)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](csharp%2F0112-path-sum.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0112-path-sum.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0112-path-sum.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0112-path-sum.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0112-path-sum.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0112-path-sum.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](swift%2F0112-path-sum.swift)</div></sub> | <sub><div align='center'>❌</div></sub>
232232
<sub>[0606 - Construct String From Binary Tree](https://leetcode.com/problems/construct-string-from-binary-tree/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](java%2F0606-construct-string-from-binary-tree.java)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0606-construct-string-from-binary-tree.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0606-construct-string-from-binary-tree.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
@@ -238,7 +238,7 @@ If you would like to have collaborator permissions on the repo to merge your own
238238
<sub>[0783 - Minimum Distance between BST Nodes](https://leetcode.com/problems/minimum-distance-between-bst-nodes/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0783-minimum-distance-between-bst-nodes.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0783-minimum-distance-between-bst-nodes.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
239239
<sub>[0101 - Symmetric Tree ](https://leetcode.com/problems/symmetric-tree/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0101-symmetric-tree.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0101-symmetric-tree.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
240240
<sub>[1443 - Minimum Time to Collect All Apples in a Tree](https://leetcode.com/problems/minimum-time-to-collect-all-apples-in-a-tree/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](rust%2F1443-minimum-time-to-collect-all-apples-in-a-tree.rs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
241-
<sub>[0103 - Binary Tree Zigzag Level Order Traversal](https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F0103-binary-tree-zigzag-level-order-traversal.cpp)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0103-binary-tree-zigzag-level-order-traversal.kt)</div></sub> | <sub><div align='center'></div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
241+
<sub>[0103 - Binary Tree Zigzag Level Order Traversal](https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F0103-binary-tree-zigzag-level-order-traversal.cpp)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0103-binary-tree-zigzag-level-order-traversal.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0103-binary-tree-zigzag-level-order-traversal.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
242242
<sub>[0427 - Construct Quad Tree](https://leetcode.com/problems/construct-quad-tree/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0427-construct-quad-tree.kt)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
243243
<sub>[0652 - Find Duplicate Subtrees](https://leetcode.com/problems/find-duplicate-subtrees/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0652-find-duplicate-subtrees.kt)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
244244
<sub>[0958 - Check Completeness of a Binary Tree](https://leetcode.com/problems/check-completeness-of-a-binary-tree/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F0958-check-completeness-of-a-binary-tree.cpp)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0958-check-completeness-of-a-binary-tree.kt)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>

java/0198-house-robber.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,18 @@ public int robDP(int[] nums) {
3232
}
3333
return dp[nums.length - 1];
3434
}
35+
36+
// DP with O(1) space
37+
public int robDP2(int[] nums) {
38+
if (nums == null || nums.length == 0) return 0;
39+
40+
int dp0 = 0, dp1 = 0, curr;
41+
42+
for (int i = 0; i < nums.length; i++) {
43+
curr = Math.max(dp0 + nums[i], dp1);
44+
dp0 = dp1;
45+
dp1 = curr;
46+
}
47+
return Math.max(dp0, dp1);
48+
}
3549
}

kotlin/0068-text-justification.kt

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
//opted out of using StringBuilder, instead used Kotlins plus operator to create new Strings
2+
class Solution {
3+
fun fullJustify(words: Array<String>, maxWidth: Int): List<String> {
4+
val res = mutableListOf<String>()
5+
var line = mutableListOf<String>()
6+
var length = 0
7+
var i = 0
8+
9+
while (i < words.size) {
10+
if (length + line.size + words[i].length > maxWidth) {
11+
val extraSpace = maxWidth - length
12+
val spaces = extraSpace / maxOf(1, line.size - 1)
13+
var remainder = extraSpace % maxOf(1, line.size - 1)
14+
15+
for (j in 0 until maxOf(1, line.lastIndex)) {
16+
line[j] += " ".repeat(spaces)
17+
if (remainder > 0) {
18+
line[j] += " "
19+
remainder--
20+
}
21+
}
22+
23+
var whole = ""
24+
for (l in line) whole += l
25+
res.add(whole)
26+
line.clear()
27+
length = 0
28+
}
29+
30+
line.add(words[i])
31+
length += words[i].length
32+
i++
33+
}
34+
35+
var lastLine = "" + line.joinToString(" ")
36+
val trailSpace = maxWidth - lastLine.length
37+
lastLine += " ".repeat(trailSpace)
38+
res.add(lastLine)
39+
40+
return res
41+
}
42+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
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+
class Solution:
8+
def zigzagLevelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
9+
if root is None:
10+
return
11+
result, zigzagDirection = [], 1
12+
q = [root]
13+
while q:
14+
level, queueLength = [], len(q)
15+
for i in range(queueLength):
16+
node = q.pop(0)
17+
level.append(node.val)
18+
if node.left:
19+
q.append(node.left)
20+
if node.right:
21+
q.append(node.right)
22+
result.append(level[::zigzagDirection])
23+
zigzagDirection *= -1
24+
return result
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
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+
class Solution:
8+
def sortedArrayToBST(self, nums: List[int]) -> Optional[TreeNode]:
9+
if not nums:
10+
return None
11+
mid = len(nums)//2
12+
root = TreeNode(nums[mid])
13+
root.left = self.sortedArrayToBST(nums[:mid])
14+
root.right = self.sortedArrayToBST(nums[mid+1:])
15+
return root

0 commit comments

Comments
 (0)