Programming

Leetcode-1791. Find Center of Star Graph

Leetcode-1791. Find Center of Star Graph

There is an undirected star graph consisting of n nodes labeled from 1 to n. A star graph is a graph where there is one center node and exactly n - 1 edges that connect the center node with every other node.

You are given a 2D integer array edges where each edges[i] = [ui, vi] indicates that there is an edge between the nodes ui and vi. Return the center of the given star graph.

Example 1:

image

Input: edges = [[1,2],[2,3],[4,2]]
Output: 2
Explanation: As shown in the figure above, node 2 is connected to every other node, so 2 is the center.

Example 2:

Input: edges = [[1,2],[5,1],[1,3],[1,4]]
Output: 1

<解題>

  1. 和997. Find the Town Judge這個想法有點像,如果是中間的節點,代表他重複的次數等於edges.length
  2. 一開始建立陣列大小為edges.length+2,因為從1開始算,且節點數為edges長度+1
  3. 計算到的次數+1,if(count[i] == edges.length ) return i

class Solution {
    public int findCenter(int[][] edges) {
        int [] count = new int [edges.length+2]; 
        for(int[] e : edges){
            count[e[0]]++;
            count[e[1]]++;
        }
        for(int i =1 ; i<edges.length+2 ; i++){
            if(count[i] == edges.length ) return i;
        }
        return -1;
    }
}

Time: O(N) Space: O(N)