Closed altay9 closed 3 years ago
Bu soru bana biraz küme birleştirme konusunu ve Kruskal algoritmasını hatırlattı. Şu soru öyle.
Evet. Aynı şekilde, şu sorular da Kruskal'ın temeli olan Union-Find ile çözülebilir:
The Earliest Moment When Everyone Become Friends https://github.com/spiralgo/algorithms/issues/185
Lexicographically Smallest Equivalent String https://github.com/spiralgo/algorithms/issues/186
https://leetcode.com/problems/number-of-connected-components-in-an-undirected-graph
Undirected Graph, node'ların belli bir yönü olmaması demektir. Bu yüzden [0 ,1] bağlantısı ile [1, 0] bağlantısı aynı şeydir ve 0 numaralı node'dan, 1 numaralı node'a bir bağlantı olduğunu gösterir. Bu bağlantı çizgisine kenar (edge) denir.
Bize bu kenarların bir array'i (int[][] edges) ve node sayısı (n) veriliyor.
Bu bağlantıları kullanarak oluşan bileşen sayısını bulun diyor.
Meselâ her bir node'u bir lego parçası olarak düşünelim. Bu array (int n, int[][] edges), hangi legonun hangisi ile bağlandığını gösteriyor. Sonuçta ortaya birden fazla "büyük lego" (bileşen, component) çıkabileceği gibi, tek bir büyük lego da çıkabilir.
İşte bu ortaya çıkan lego sayısı soruluyor.