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 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; +} 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]