Monday, March 28, 2022

Leet Code 684. Redundant Connection



isme pehle (1,2), then (2,3) aaya

jab (1,3) aaega tab humein cycle bnege, hence, woh redundant hai


hum aab koi bhi node hata skte hain, redundancy remove krne ke lea.

But cycle to bne hi last wale edge se the i.e. (1,3)

humein woh last node return krne hai jiski wjh se cycle bne hai



package pep.Day45;

public class LeetCode_684_Redundant_Connections {
public int[] findRedundantConnection(int[][] graph) {
// n kese niklega?
// no. of edges = no. of vertices +1
int n = graph.length;

// 1 -> n hai to n+1 ka size hona cheye
parent = new int[n + 1];
size = new int[n + 1];

for (int i = 0; i <= n; i++) {
parent[i] = i;
size[i] = 1;
}

for (int[] edge : graph) {
int u = edge[0];
int v = edge[1];

int p1 = findParent(u);
int p2 = findParent(v);

if (p1 != p2) {
merge(p1, p2);
} else {
return edge;
}
}

return new int[0];
}

int[] parent, size;

public int findParent(int u) {

return parent[u] == u ? u : (parent[u] = findParent(parent[u]));
}

public void merge(int u, int v) {

if (size[u] >= size[v]) {
parent[v] = u;
size[u] += size[v];
} else {
parent[u] = v;
size[v] += size[u];
}
}
}




No comments:

Post a Comment

Diagonal Traversal

 eg.  1       2       3       4 5      6       7       8 9    10    11     12 13  14   15    16 Output: 1 6 11 16 2 7 12 3 8 4  Approach:...