From 0c97e03c4aeae26138a645d0ed6ad9f0f8dfe7de Mon Sep 17 00:00:00 2001 From: vikasahlawat228 <60697488+vikasahlawat228@users.noreply.github.com> Date: Wed, 16 Dec 2020 18:48:05 +0530 Subject: [PATCH] Create solution.java --- .../Components in a graph/solution.java | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 Disjoint Sets/Components in a graph/solution.java diff --git a/Disjoint Sets/Components in a graph/solution.java b/Disjoint Sets/Components in a graph/solution.java new file mode 100644 index 00000000..df337875 --- /dev/null +++ b/Disjoint Sets/Components in a graph/solution.java @@ -0,0 +1,57 @@ +import java.io.*; +import java.math.*; +import java.text.*; +import java.util.*; +import java.util.regex.*; + +public class Solution { + + public static void main(String args[]){ + int[] parents = new int[30001]; + + Scanner sc = new Scanner(System.in); + int n = sc.nextInt(); + int a, b; + + while(n-->0){ + + a = sc.nextInt(); + b = sc.nextInt(); + + if(parents[a] == 0) parents[a] = a; + if(parents[b] == 0) parents[b] = a; + + //Disjoin set idea, keep updating the representative element of each set. + if(parents[a] != 0 || parents[b] != 0){ + int low = Math.min(parents[a], parents[b]); + int high = Math.max(parents[a], parents[b]); + for(int i=0; i ints = Arrays.asList(newArray); + int min = Integer.MAX_VALUE; + int max = Integer.MIN_VALUE; + + for(int item : newArray) { + if(item != 0) { + int frequency = Collections.frequency(ints, item); + min = Math.min(min, frequency); + max = Math.max(max, frequency); + } + } + System.out.println(min + " " + max); + } + +}