From 75c8db1f2c4b2f19ba377d89f43d7118d625e481 Mon Sep 17 00:00:00 2001 From: sudheer kethireddy Date: Mon, 6 Jul 2026 16:29:19 -0500 Subject: [PATCH] first commit --- BinaryTreeLevelOrderTraversal.java | 30 +++++++++++++++++ CourseSchedule.java | 52 ++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 BinaryTreeLevelOrderTraversal.java create mode 100644 CourseSchedule.java diff --git a/BinaryTreeLevelOrderTraversal.java b/BinaryTreeLevelOrderTraversal.java new file mode 100644 index 00000000..6b90ee46 --- /dev/null +++ b/BinaryTreeLevelOrderTraversal.java @@ -0,0 +1,30 @@ +// Time complexity: O(n) +// Space complexity: O(h) +class Solution { + public List> levelOrder(TreeNode root) { + + List> result = new ArrayList<>(); + + if(root == null) return result; + Queue queue = new LinkedList<>(); + queue.add(root); + while(! queue.isEmpty()) { + int size = queue.size(); + List list = new ArrayList<>(); + for(int i=0; i < size; i++) { + + TreeNode node = queue.poll(); + list.add(node.val); + + if(node.left != null) { + queue.add(node.left); + } + if(node.right != null) { + queue.add(node.right); + } + } + result.add(list); + } + return result; + } +} \ No newline at end of file diff --git a/CourseSchedule.java b/CourseSchedule.java new file mode 100644 index 00000000..5cc8dabf --- /dev/null +++ b/CourseSchedule.java @@ -0,0 +1,52 @@ + +// Time complexity: O(V+E) +// space complexity: O(V+E) +class Solution { + public boolean canFinish(int numCourses, int[][] prerequisites) { + + int[] indegree = new int[numCourses]; + Map> map = new HashMap<>(); + + for(int[] prereq: prerequisites) { + int ind = prereq[1]; + int dep = prereq[0]; + indegree[dep]++; + + if(map.get(ind)== null) { + map.put(ind, new ArrayList<>()); + } + map.get(ind).add(dep); + } + + Queue q = new LinkedList<>(); + int result = 0; + for(int i = 0; i < numCourses; i++) { + if(indegree[i] == 0) { + q.add(i); + result++; + } + } + + if (q.isEmpty()) return false; + if (result == numCourses) return true; + + while(!q.isEmpty()) { + int curr = q.poll(); + List dependencies = map.get(curr); + + if(dependencies != null) { + + for(int dependent: dependencies) { + indegree[dependent]--; + + if(indegree[dependent] == 0) { + q.add(dependent); + result++; + if(result == numCourses) return true; + } + } + } + } + return false; + } +} \ No newline at end of file