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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy