今天做每日一题:https://leetcode-cn.com/problems/find-center-of-star-graph/
开始没有认真看题,题目中说的星图是“由 n 个编号从 1 到 n 的节点组成”,意味着每个节点的id都是唯一且不等的,这就意味着不可能出现[[3,2],[2,3],[3,2]]这种2和3都可能是中心点的星图。
题目备注了edges.length == n - 1和edges[i].length == 2,可以看出入参一定是一个2*(n-1)的二维矩阵,每一行只有2个数,就是星图某一条边的起点和终点,那么我们可以确定,每两条边一定有一个公共节点是中心点。
问题简化成了,求2条边的中心点,也就是4个数中找到2个一样的数,一个if else就可以完成,再利用Java的三元运算符可以简化代码。
这里补充一下三元运算符代替if else的规则:
return a > b ? 1 : 0;
A为布尔表达式(真/假),B 和C为执行语句。
最直观的 :A ? B:C ,意思就是如果A为真执行B,否则执行C
网友评论