Advertisement
phanindhar1

Untitled

Apr 15th, 2023
520
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.81 KB | None | 0 0
  1.     public int find(int n, int m, int[][] edges) {
  2.         Arrays.sort(edges, (a, b) -> Integer.compare(b[2], a[2]));
  3.         int[] parent = new int[n + 1];
  4.         for (int i = 1; i <= n; i++) {
  5.             parent[i] = i;
  6.         }
  7.  
  8.         int totalReward = 0;
  9.         for (int[] edge : edges) {
  10.             int parentA = findParent(edge[0], parent);
  11.             int parentB = findParent(edge[1], parent);
  12.             if (parentA != parentB) {
  13.                 parent[parentB] = parentA;
  14.             } else {
  15.                 totalReward += edge[2];
  16.             }
  17.         }
  18.  
  19.         return totalReward;
  20.     }
  21.  
  22.     private int findParent(int node, int[] parent) {
  23.         if (parent[node] != node) {
  24.             parent[node] = findParent(parent[node], parent);
  25.         }
  26.         return parent[node];
  27.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement