From 08cfb4d782c9170afd18cfbfc372f5cbbfdd276b Mon Sep 17 00:00:00 2001 From: Gordon Choi Date: Mon, 12 Jan 2026 14:53:41 +0900 Subject: [PATCH 1/3] invert binary tree solution --- invert-binary-tree/radiantchoi.ts | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 invert-binary-tree/radiantchoi.ts diff --git a/invert-binary-tree/radiantchoi.ts b/invert-binary-tree/radiantchoi.ts new file mode 100644 index 0000000000..3c6a6f4999 --- /dev/null +++ b/invert-binary-tree/radiantchoi.ts @@ -0,0 +1,28 @@ +/** + * Definition for a binary tree node. + * class TreeNode { + * val: number + * left: TreeNode | null + * right: TreeNode | null + * constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) { + * this.val = (val===undefined ? 0 : val) + * this.left = (left===undefined ? null : left) + * this.right = (right===undefined ? null : right) + * } + * } + */ + +function invertTree(root: TreeNode | null): TreeNode | null { + if (root === null) { + return null; + } + + const temp = root.left; + root.left = root.right; + root.right = temp; + + invertTree(root.left); + invertTree(root.right); + + return root; +} From ba31c8f730df7556a20ae3d689201d3204868e51 Mon Sep 17 00:00:00 2001 From: Gordon Choi Date: Tue, 13 Jan 2026 14:50:52 +0900 Subject: [PATCH 2/3] course schedule solution --- course-schedule/radiantchoi.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 course-schedule/radiantchoi.py diff --git a/course-schedule/radiantchoi.py b/course-schedule/radiantchoi.py new file mode 100644 index 0000000000..9d3e967ae2 --- /dev/null +++ b/course-schedule/radiantchoi.py @@ -0,0 +1,25 @@ +from collections import deque, defaultdict + +class Solution: + def canFinish(self, numCourses: int, prerequisites: List[List[int]]) -> bool: + posts = defaultdict(list) + indegree = [0] * numCourses + + for prerequisite in prerequisites: + posts[prerequisite[1]].append(prerequisite[0]) + indegree[prerequisite[0]] += 1 + + completed = 0 + q = deque(list(filter(lambda x: indegree[x] == 0, range(numCourses)))) + + while q: + current = q.popleft() + completed += 1 + + for post in posts[current]: + indegree[post] -= 1 + + if indegree[post] == 0: + q.append(post) + + return completed == numCourses From cd37864d826c6f3cfa0adf244eb9607f222a1b7b Mon Sep 17 00:00:00 2001 From: Gordon Choi Date: Wed, 14 Jan 2026 15:22:23 +0900 Subject: [PATCH 3/3] jump game solution --- jump-game/radiantchoi.py | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 jump-game/radiantchoi.py diff --git a/jump-game/radiantchoi.py b/jump-game/radiantchoi.py new file mode 100644 index 0000000000..6da01b5226 --- /dev/null +++ b/jump-game/radiantchoi.py @@ -0,0 +1,11 @@ +class Solution: + def canJump(self, nums: List[int]) -> bool: + reachable = [False] * len(nums) + destination = len(nums) - 1 + + for index, strength in list(enumerate(nums))[::-1]: + if index + strength >= destination: + reachable[index] = True + destination = index + + return reachable[0]