1791. 找出星型图的中心节点
查看原题
解题思路(哈希)
将二维数组转变为一维数组,求出每个数字出现的个数,出现个数为n-1的那个就是中心节点。
代码
/**
* @param {number[][]} edges
* @return {number}
*/
var findCenter = function(edges) {
const array = edges.toString().split(',');
const n = edges.length;
let map = new Map();
for (const item of array) {
if(map.has(item)) {
if(map.get(item) === n - 1 && item !== ','){
return item;
}else{
map.set(item,map.get(item) + 1);
}
}else {
map.set(item,1);
}
}
};
解题思路(找规律)
因为中心点有n-1条边与之相连,说明每一个点都要与中心点相连;因此只要判断前数组的两个数组中哪个数是重复出现的,那个数即为中心点。
代码
/**
* @param {number[][]} edges
* @return {number}
*/
var findCenter = function(edges) {
if(edges[0][0] === edges[1][0] || edges[0][0] === edges[1][1]) {
return edges[0][0];
}else {
return edges[0][1]
}
};