From 5b855153dba975b581b8f5d05c6d095d078aeee7 Mon Sep 17 00:00:00 2001 From: Tanmay-312 Date: Wed, 24 Jan 2024 20:34:56 +0530 Subject: [PATCH] Added codes for 24 Jan --- GeeksForGeeks/24-1-24/GFG.java | 82 +++++++++++++++++++++++++++++++++ GeeksForGeeks/24-1-24/README.md | 2 + LeetCode/24-1-24/README.md | 2 + LeetCode/24-1-24/Solution.java | 43 +++++++++++++++++ 4 files changed, 129 insertions(+) create mode 100644 GeeksForGeeks/24-1-24/GFG.java create mode 100644 GeeksForGeeks/24-1-24/README.md create mode 100644 LeetCode/24-1-24/README.md create mode 100644 LeetCode/24-1-24/Solution.java diff --git a/GeeksForGeeks/24-1-24/GFG.java b/GeeksForGeeks/24-1-24/GFG.java new file mode 100644 index 0000000..3e675ec --- /dev/null +++ b/GeeksForGeeks/24-1-24/GFG.java @@ -0,0 +1,82 @@ +//{ Driver Code Starts +import java.io.*; +import java.util.*; + +public class GFG { + public static void main(String[] args) { + Scanner scanner = new Scanner(System.in); + int t=scanner.nextInt(); + while(t-- > 0) + { + int n = scanner.nextInt(); + int m = scanner.nextInt(); + + ArrayList> edges = new ArrayList<>(); + for (int i = 0; i < m; i++) { + int u = scanner.nextInt(); + int v = scanner.nextInt(); + ArrayList edge = new ArrayList<>(); + edge.add(u); + edge.add(v); + edges.add(edge); + } + + Solution solution = new Solution(); + boolean result = solution.isTree(n, m, edges); + + if (result==true) { + System.out.println(1); + } else { + System.out.println(0); + } + } + } +} +// } Driver Code Ends + + +//User function Template for Java +class Solution +{ + public boolean isCyclePresent(int node,List> adj,Set vis,int p) + { + vis.add(node); + for(int i:adj.get(node)) + { + if(!vis.contains(i)) + { + if(!isCyclePresent(i,adj,vis,node)) + return false; + } + + else if(p!=i) + return false; + } + + return true; + } + + + public boolean isTree(int n, int m, ArrayList> edges) + { + // code here + List> adj = new ArrayList<>(); + + for(int i=0;i()); + + for(ArrayList e:edges) + { + adj.get(e.get(0)).add(e.get(1)); + adj.get(e.get(1)).add(e.get(0)); + } + + Set vis = new HashSet<>(); + boolean b = isCyclePresent(0,adj,vis,-1); + + if(vis.size()!=n) + return false; + + return b; + } +} diff --git a/GeeksForGeeks/24-1-24/README.md b/GeeksForGeeks/24-1-24/README.md new file mode 100644 index 0000000..e95b48c --- /dev/null +++ b/GeeksForGeeks/24-1-24/README.md @@ -0,0 +1,2 @@ +Time complexity - O(n+m) +Space complexity - O(n) diff --git a/LeetCode/24-1-24/README.md b/LeetCode/24-1-24/README.md new file mode 100644 index 0000000..722dfdc --- /dev/null +++ b/LeetCode/24-1-24/README.md @@ -0,0 +1,2 @@ +Time complexity - O(n) +Space complexity - O(h) diff --git a/LeetCode/24-1-24/Solution.java b/LeetCode/24-1-24/Solution.java new file mode 100644 index 0000000..d317d74 --- /dev/null +++ b/LeetCode/24-1-24/Solution.java @@ -0,0 +1,43 @@ +/** + * Definition for a binary tree node. + * public class TreeNode { + * int val; + * TreeNode left; + * TreeNode right; + * TreeNode() {} + * TreeNode(int val) { this.val = val; } + * TreeNode(int val, TreeNode left, TreeNode right) { + * this.val = val; + * this.left = left; + * this.right = right; + * } + * } + */ +class Solution +{ + public int pseudoPalindromicPaths (TreeNode root) + { + dfs(root,0); + return ans; + } + + private int ans = 0; + + private void dfs(TreeNode root, int path) + { + if (root == null) + return; + + if (root.left == null && root.right == null) + { + path ^= 1 << root.val; + if ((path & (path - 1)) == 0) + ++ans; + + return; + } + + dfs(root.left, path ^ 1 << root.val); + dfs(root.right, path ^ 1 << root.val); + } +}