carloscn / structstudy

Leetcode daily trainning by using C/C++/RUST programming.
4 stars 1 forks source link

leetcode1791: Find Center of Star Graph #282

Open carloscn opened 1 year ago

carloscn commented 1 year ago

Description

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.

image

Example 1:

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

Constraints:

3 <= n <= 105 edges.length == n - 1 edges[i].length == 2 1 <= ui, vi <= n ui != vi The given edges represent a valid star graph.

carloscn commented 1 year ago

Analysis

pub fn find_center(edges: Vec<Vec<i32>>) -> i32
{
    if edges.is_empty() {
        return -1;
    }

    let mut ret:i32 = 0;
    let mut flag:bool = false;
    for i in 0..edges[0].len() {
        ret = edges[0][i];
        for j in 1..edges.len() {
            if !edges[j].contains(&ret) {
                flag = true;
                break;
            }
        }
        if flag == false {
            return ret;
        }
    }

    return ret;
}
carloscn commented 1 year ago

code

https://review.gerrithub.io/c/carloscn/structstudy/+/556895 https://github.com/carloscn/structstudy/commit/e050f45f8605d8e654746134f9148793646cb0c6