首页 > 其他分享 >找出星型图的中心节点

找出星型图的中心节点

时间:2023-06-16 18:44:57浏览次数:41  
标签:map 找出 int edge edges 星型 节点

有一个无向的 星型 图,由 n 个编号从 1 到 n 的节点组成。星型图有一个 中心 节点,并且恰有 n - 1 条边将中心节点与其他每个节点连接起来。

给你一个二维整数数组 edges ,其中 edges[i] = [ui, vi] 表示在节点 ui 和 vi 之间存在一条边。请你找出并返回 edges 所表示星型图的中心节点。

示例 1:

输入:edges = [[1,2],[2,3],[4,2]]
输出:2
解释:如上图所示,节点 2 与其他每个节点都相连,所以节点 2 是中心节点。
示例 2:

输入:edges = [[1,2],[5,1],[1,3],[1,4]]
输出:1

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/find-center-of-star-graph
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

数组频率法

class Solution {
    public int findCenter(int[][] edges) {
        //计算度的方法,创建一个数组,记录每个数字出现的频率,频率=度
        int len = edges.length+1;
        int[] desgies = new int[len+1];
        for(int[] edge : edges){
            //记录数组对应数字的频率
            desgies[edge[0]]++;
            desgies[edge[1]]++;
        }
        for(int i=0;;i++){
            if(desgies[i]==len-1) return i;
        }
    }
}

HashMap方法

class Solution {
    public int findCenter(int[][] edges) {
        //HashMap方法,第一位记录数字,第二位记录频率
        HashMap<Integer,Integer> map = new HashMap<>();
        for(int[] edge : edges){
            map.put(edge[0],map.getOrDefault(edge[0],0)+1);
            map.put(edge[1],map.getOrDefault(edge[1],0)+1);
        }
        for(int key : map.keySet()){
            if(map.get(key)==map.size()-1){
                return key;
            }
        }
        return -1;
    }
}

标签:map,找出,int,edge,edges,星型,节点
From: https://www.cnblogs.com/xiaochaofang/p/17486298.html

相关文章

  • Jenkins-Slave节点 电脑A控制电脑B运行Python脚本
    电脑A装了Jenkins的服务器,电脑B作为Jenkins的节点电脑(Slave)Jenkins服务的配置1、ManageJenkins>ConfigureSystem 找到JenkinsURL,确保不是127.0.0.1或者localhost就可以了。 2、ManageJenkins>ConfigureGlobalSecurity找到代理,设置端口或者选择随机选取,再把代......
  • tr069 节点模板定义c语言
    #include<stdio.h>/*Signed*/typedefsignedcharint8_t;typedefshortintint16_t;typedefintint32_t;/*Unsigned.*/typedefunsignedcharuint8_t;typedefunsignedshortintuint16_t;typedefunsignedint......
  • SQL SERVER 根据子节点查询所有父节点、根据父节点获取所有子节点
    一、根据表单类型查询其所有的上级表单类型:1、每次按照一个子节点的值进行查询:withpartentsas(select*fromJCBDFLwhereBDFLDM='14'UNIONALL(SELECTa.*fromJCBDFLasainnerjoinpartentsasbona.BDFLDM=b.SJDM))SELECTBDFLDM,BDFLMC,SJDMFROMparten......
  • 删除链表的倒数第N个节点
    删除链表的倒数第N个节点给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。示例:给定一个链表:1->2->3->4->5,和n=2.当删除了倒数第二个节点后,链表变为1->2->3->5.说明:给定的n保证是有效的。解题思路:用两个指针一前一后遍历链表,两者相差n+1个节点,当前......
  • 一篇就让小白入门K8S,使用Minikube来搭建本地的单节点K8S集群
    开篇Kubernetes(通常简称为K8s)是一个开源的容器编排平台,它为应用程序的部署、扩展和管理提供了强大的工具和功能。在本文中,我们将通过一个实战案例,引导您进入Kubernetes的世界,了解其基本概念和架构,并帮助您安装和配置一个简单的Kubernetes集群。Kubernetes概述Kubernetes是一个......
  • 2023-06-14:我们从二叉树的根节点 root 开始进行深度优先搜索。 在遍历中的每个节点处,
    2023-06-14:我们从二叉树的根节点root开始进行深度优先搜索。在遍历中的每个节点处,我们输出D条短划线(其中D是该节点的深度)然后输出该节点的值。(如果节点的深度为D,则其直接子节点的深度为D+1根节点的深度为0如果节点只有一个子节点,那么保证该子节点为左子节点给出遍......
  • 2023-06-14:我们从二叉树的根节点 root 开始进行深度优先搜索。 在遍历中的每个节点处,
    2023-06-14:我们从二叉树的根节点root开始进行深度优先搜索。在遍历中的每个节点处,我们输出D条短划线(其中D是该节点的深度)然后输出该节点的值。(如果节点的深度为D,则其直接子节点的深度为D+1根节点的深度为0如果节点只有一个子节点,那么保证该子节点为左子节点给出遍历输出......
  • 2023-06-14:我们从二叉树的根节点 root 开始进行深度优先搜索。 在遍历中的每个节点处,
    2023-06-14:我们从二叉树的根节点root开始进行深度优先搜索。在遍历中的每个节点处,我们输出D条短划线(其中D是该节点的深度)然后输出该节点的值。(如果节点的深度为D,则其直接子节点的深度为D+1根节点的深度为0如果节点只有一个子节点,那么保证该子节点为左子节点给出遍历输出......
  • 【数据结构与算法面试题】二叉树节点的最大距离
    题目来源“数据结构与算法面试题80道”。问题分析:涉及的知识点是二叉树的遍历,遍历的方法主要有:先序遍历中序遍历后序遍历层次遍历在本题中,使用先序遍历的方法。方法:voidm_length(BSTreeNode*root,int*length,int*max_length){if(NULL==root||(NULL==root......
  • java正则多个IP从中找出来匹配结果
    packagecom.yunfatong.evidence.utils;importcn.hutool.core.collection.CollUtil;importcn.hutool.poi.excel.ExcelBase;importcn.hutool.poi.excel.ExcelUtil;importcn.hutool.poi.excel.ExcelWriter;importcn.hutool.poi.excel.StyleSet;importorg.apache.po......