Skip to content

Commit 2e0adfb

Browse files
authored
Merge pull request #1643 from eunhwa99/main
[eunhwa99] WEEK 14 solutions
2 parents 182ac06 + c5c511a commit 2e0adfb

File tree

2 files changed

+52
-0
lines changed

2 files changed

+52
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// https://leetcode.com/problems/binary-tree-level-order-traversal/description/
2+
/**
3+
* Example:
4+
* var ti = TreeNode(5)
5+
* var v = ti.`val`
6+
* Definition for a binary tree node.
7+
* class TreeNode(var `val`: Int) {
8+
* var left: TreeNode? = null
9+
* var right: TreeNode? = null
10+
* }
11+
*/
12+
class Solution {
13+
fun levelOrder(root: TreeNode?): List<List<Int>> {
14+
val result = mutableListOf<List<Int>>()
15+
if(root == null) return result
16+
17+
val queue: ArrayDeque<TreeNode> = ArrayDeque()
18+
queue.add(root)
19+
20+
while (queue.isNotEmpty()) {
21+
val levelSize = queue.size
22+
val level = mutableListOf<Int>()
23+
repeat(levelSize) {
24+
val node = queue.removeFirst()
25+
level.add(node.`val`)
26+
node.left?.let { queue.add(it) }
27+
node.right?.let { queue.add(it) }
28+
}
29+
result.add(level)
30+
}
31+
return result
32+
}
33+
}

house-robber-ii/eunhwa99.kt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// https://leetcode.com/problems/house-robber-ii/description/
2+
class Solution {
3+
fun rob(nums: IntArray): Int {
4+
if (nums.size == 1) return nums[0]
5+
return maxOf(rob(nums, 0, nums.size - 2), rob(nums, 1, nums.size - 1))
6+
}
7+
8+
private fun rob(nums: IntArray, start: Int, end: Int): Int {
9+
val dp = IntArray(nums.size) { 0 }
10+
dp[start] = nums[start]
11+
dp[start + 1] = maxOf(nums[start], nums[start + 1])
12+
for (i in start + 2..end) {
13+
dp[i] = maxOf(dp[i - 1], dp[i - 2] + nums[i])
14+
}
15+
return dp[end]
16+
}
17+
}
18+
// TC: O(n)
19+
// SC: O(n)

0 commit comments

Comments
 (0)