1791.找出星型图的中心节点

This commit is contained in:
游由 2022-02-18 10:19:56 +08:00
parent e2bc9efb04
commit c00d1781a5
2 changed files with 49 additions and 0 deletions

View File

@ -116,5 +116,6 @@ mod q1486;
mod q1720;
mod q1723;
mod q1734;
mod q1791;
mod q1984;
mod q2006;

View File

@ -0,0 +1,48 @@
use crate::Solution;
impl Solution {
/// [1791.找出星型图的中心节点](https://leetcode-cn.com/problems/find-center-of-star-graph/)
///
/// 2022-02-18 10:09:41
///
/// 有一个无向的 **星型** 图,由 `n` 个编号从 `1` 到 `n` 的节点组成。星型图有一个 **中心** 节点,并且恰有 `n - 1` 条边将中心节点与其他每个节点连接起来。
///
/// 给你一个二维整数数组 `edges` ,其中 `edges[i] = [ui, vi]` 表示在节点 `ui` 和 `vi` 之间存在一条边。请你找出并返回 `edges` 所表示星型图的中心节点。
///
/// + **示例 1**
/// + ![](https://assets.leetcode-cn.com/aliyun-lc-upload/uploads/2021/03/14/star_graph.png)
/// + **输入:** edges = \[\[1,2\],\[2,3\],\[4,2\]\]
/// + **输出:** 2
/// + **解释:** 如上图所示,节点 2 与其他每个节点都相连,所以节点 2 是中心节点。
/// + **示例 2**
/// + **输入:** edges = \[\[1,2\],\[5,1\],\[1,3\],\[1,4\]\]
/// + **输出:** 1
/// + **提示:**
/// * `3 <= n <= 105`
/// * `edges.length == n - 1`
/// * `edges[i].length == 2`
/// * `1 <= ui, vi <= n`
/// * `ui != vi`
/// * 题目数据给出的 `edges` 表示一个有效的星型图
/// + Related Topics
/// * 图
/// * 👍 28
/// * 👎 0
pub fn find_center(edges: Vec<Vec<i32>>) -> i32 {
match edges[0][0] == edges[1][0] || edges[0][0] == edges[1][1] {
true => edges[0][0],
_ => edges[0][1]
}
}
}
#[cfg(test)]
mod test {
use crate::Solution;
#[test]
fn test_q1791() {
assert_eq!(Solution::find_center(vec![vec![1, 2], vec![2, 3], vec![4, 2]]), 2);
}
}