Posts

Showing posts from January, 2025

2493. Divide Nodes Into the Maximum Number of Groups

Image
You are given a positive integer  n  representing the number of nodes in an  undirected  graph. The nodes are labeled from  1  to  n . You are also given a 2D integer array  edges , where  edges[i] = [ai, bi]  indicates that there is a  bidirectional  edge between nodes  ai  and  bi .  Notice  that the given graph may be disconnected. Divide the nodes of the graph into  m  groups ( 1-indexed ) such that: Each node in the graph belongs to exactly one group. For every pair of nodes in the graph that are connected by an edge  [ai, bi] , if  ai  belongs to the group with index  x , and  bi  belongs to the group with index  y , then  |y - x| = 1 . Return  the maximum number of groups (i.e., maximum ** m ) into which you can divide the nodes . Return  -1  **if it is impossible to group the nodes with the given conditions .    Example 1...

684. Redundant Connection

Image
In this problem, a tree is an  undirected graph  that is connected and has no cycles. You are given a graph that started as a tree with  n  nodes labeled from  1  to  n , with one additional edge added. The added edge has two  different  vertices chosen from  1  to  n , and was not an edge that already existed. The graph is represented as an array  edges  of length  n  where  edges[i] = [a i , b i ]  indicates that there is an edge between nodes  a i  and  b i  in the graph. Return  an edge that can be removed so that the resulting graph is a tree of  n  nodes . If there are multiple answers, return the answer that occurs last in the input.   Example 1: Input: edges = [[1,2],[1,3],[2,3]] Output: [2,3] Example 2: Input: edges = [[1,2],[2,3],[3,4],[1,4],[1,5]] Output: [1,4]   Constraints: n == edges.length 3 <= n <= 1000 edges[i].length == 2 1 ...