【力扣每日一题】2023.8.31 一个图中连通三元组的最小度数

news2024/9/25 1:14:21

目录

题目:

示例:

分析:

代码:


题目:

示例:

分析:

题目给我们一个无向图,要我们找出三个节点,这三个节点他们两两相连,这三个节点除了连接到对方的其他线被称为连通三元组的度数,问我们图中最小的三元组度数是多少。

我的第一个想法就是使用map来构建图,然后遍历每个节点,再遍历每个节点的相邻节点,再遍历每个节点的相邻节点的相邻节点,如果节点的相邻节点的相邻节点是该节点,那么我们就找到了连通三元组,他们总体的度数-6就是连通三元组的度数。因为三元组中每个节点为了连通另外两个节点,都需要花费两个度,而剩余的度就是连接其他非本三元组的节点了,所以连通三元组的度数就是三个节点的总度数-2*3。

不过这么做就超时了,因为同一个三元组我们会重复遍历三次,每个节点我们都会遍历寻找包括它的连通三元组。虽然这种方式超时了,但也不失为一种方法,代码在下面,可以参考。

那么直接构建图不行,我们可以构建图的邻接矩阵。

我们另外再拿一个数组来存放每个节点的度数。

邻接矩阵用来判断三个点是否是相互连通的,度数数组用来计算连通三元组的度数。

代码:

class Solution {
public:
    int minTrioDegree(int n, vector<vector<int>>& edges) {
        //超时
        unordered_map<int,unordered_set<int>>m;
        for(auto edge:edges){   //构建图
            if(m.find(edge[0])==m.end()) m[edge[0]]=unordered_set<int>();
            if(m.find(edge[1])==m.end()) m[edge[1]]=unordered_set<int>();
            m[edge[0]].insert(edge[1]);
            m[edge[1]].insert(edge[0]);
        }
        int res=INT_MAX;
        for(auto& i:m){     //取出每个节点
            for(auto& j: i.second){     //取出相连的节点集
                for(auto& k: m[j]){         //取出相连的节点的相连结果集
                    if(m[k].count(i.first)){    //若是等于第一个节点,那么表示这仨节点相互连通
                        res=min(res,static_cast<int>(i.second.size()+m[j].size()+m[k].size()-6));
                    }
                }
            }
        }
        return res==INT_MAX?-1:res;
        
        //构建邻接矩阵 
        int res=INT_MAX;
        vector<vector<int>>pic(n+1,vector<int>(n+1,0)); //连通矩阵
        vector<int>du(n+1,0);   //每个点的度
        for(auto& edge: edges){     //构建邻接矩阵以及获取每个节点的度
            pic[edge[0]][edge[1]]=1;pic[edge[1]][edge[0]]=1;
            du[edge[0]]++;du[edge[1]]++;
        } 
        for(int i=1;i<=n;i++){  
            for(int j=i+1;j<=n;j++){
                for(int k=j+1;k<=n;k++){
                    //遍历每个节点,找到相互连通的三个节点,度数之和-6就是连通三元组的读度数
                    if(pic[i][j] && pic[j][k] && pic[i][k]) res=min(res,du[i]+du[j]+du[k]-6);
                }
            }
        }
        return res==INT_MAX?-1:res;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/958144.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阻塞非阻塞IO(BIO和NIO),IO多路复用

1.概念 NIO&#xff08;New Input/Output&#xff09;和BIO&#xff08;Blocking Input/Output&#xff09;是Java中用于处理输入输出的两种不同的模型。 BIO 会阻塞&#xff0c;等有了消息&#xff0c;立刻返回&#xff0c;一个线程处理一个recv&#xff08;需要很多线程&…

Solidity 小白教程:5. 变量数据存储和作用域 storage_memory_calldata

Solidity 小白教程&#xff1a;5. 变量数据存储和作用域 storage_memory_calldata Solidity 中的引用类型 引用类型(Reference Type)&#xff1a;包括数组&#xff08;array&#xff09;&#xff0c;结构体&#xff08;struct&#xff09;和映射&#xff08;mapping&#xff…

用迅为RK3568开发板使用OpenCV处理图像颜色通道提取ROI

本小节代码在配套资料“iTOP-3568 开发板\03_【iTOP-RK3568 开发板】指南教程 \04_OpenCV 开发配套资料\07”目录下&#xff0c;如下图所示&#xff1a; 在计算机的色彩图像中存有三个通道&#xff0c;即 BGR 通道&#xff0c;根据三个颜色通道的亮度值来显示出不同的颜色&…

动态相对定位差分关键技术

载波相位测量&#xff1a;解决两个关键问题&#xff0c;即整周模糊度计算和周跳检测。 整周模糊度的快速固定是研究重点。目前成熟方法是模糊度协方差法&#xff0c;分为模糊度实数解估计和模糊度搜索两个过程。实数解估计通常采用kalman滤波&#xff0c;它为搜索算法提供搜索…

哈希表HashMap(基于vector和list)

C数据结构与算法实现&#xff08;目录&#xff09; 1 什么是HashMap&#xff1f; 我们这里要实现的HashMap接口不会超过标准库的版本&#xff08;是一个子集&#xff09;。 HashMap是一种键值对容器&#xff08;关联容器&#xff09;&#xff0c;又叫字典。 和其他容易一样…

【Vue3 知识第一讲】Vue 简介、核心关键词解读

文章目录 前置导读1. 学习 Vue3 需要什么知识&#xff1f;2. 通过本课程将能学到什么&#xff1f; 第一章&#xff1a;Vue 简介1.1 核心关键词&#xff1a;构建用户界面1.2 核心关键词&#xff1a;框架1.2.1 库和框架的区别1.2.2 Vue 框架 1.3 核心关键词&#xff1a;渐进式&am…

CTFhub-SSRF-内网访问

CTFHub 环境实例 | 提示信息 http://challenge-8bf41c5c86a8c5f4.sandbox.ctfhub.com:10800/?url_ 根据提示&#xff0c;在url 后门添加 127.0.0.1/flag.php http://challenge-8bf41c5c86a8c5f4.sandbox.ctfhub.com:10800/?url127.0.0.1/flag.php ctfhub{a6bb51530c8f6be0…

模拟电子技术基础学习笔记一 本征半导体

半导体器件是构成电子电路的基本元件&#xff0c;它们所用的材料是经过特殊加工且性能可控的半导体材料。 1.本征半导体 纯净的具有晶体结构的半导体称为本征半导体 2.共价键 两个或多个原子通过共用电子对而产生的一种化学键称为共价键&#xff08;covalent bond&#xff…

甄知携AIGC新升级产品参与首届人工智能生成内容国际会议,共探AIGC最前沿技术

首届人工智能生成内容国际会议(2023The 1st International Conference on AI-generated Content (AIGC2023)于2023年8月25-26日在中国上海举行。本次会议得到了复旦大学、中国科技大学、同济大学、上海交通大学、上海人工智能实验室、香港中文大学等知名院校和研究机构的大力支…

8.物联网LWIP,简要介绍http(超文本,URL),html(css,ajax),web实现打开灯

一。HTTP详解 1.超文本&#xff1a;&#xff08;HyperText&#xff09; &#xff08;1&#xff09;超文本文件彼此链接&#xff0c;形成网状&#xff08;web&#xff09;&#xff0c;内含有超链接&#xff08;Link&#xff09;与各种媒体元素标记&#xff08;Markup&#xff…

C#添加WebApi,配置Swagger

1、创建一个WebAPI项目 下载、安装、引入【Swashbuckle.AspNetCore】包 右击【解决方案】&#xff0c;然后点击【管理Nuget包】&#xff0c;搜索【Swashbuckle.AspNetCore】包 2、配置Swagger中间件 在【Startup.cs】文件中的【ConfigureService】类中添加如下代码。 在【Sta…

Git管理

Git管理 ①对于项目目录中有.git的&#xff0c;可以在idea里面更改远程提交地址 Git->>Manage Remotes 中修改远程提交地址 ②对于没有.git目录的项目 在项目的根目录下进入cmd&#xff0c;使用下面的语句初始化.git目录 ##初始化 git init

笔记本电脑连接不上wifi怎么办?3种方法轻松搞定!

在现代社会中&#xff0c;无线网络已经成为人们日常生活和工作中必不可少的一部分。然而&#xff0c;有时候我们可能会遇到笔记本电脑无法连接到Wi-Fi网络的问题。这种情况可能会让人感到困扰&#xff0c;影响正常的工作和娱乐体验。那笔记本电脑连接不上wifi怎么办呢&#xff…

VB:判断一个数是否为质数

VB编程&#xff1a;判断一个数是否为质数 Private Sub Command1_Click() 点击事件 Dim N%, I%, K% 定义N,I,K为整型 N Val(InputBox("N?")) 输入信息 K Int(Sqr(N)) 对N取平方根&#xff0c;并转换为整型 For I 2 To K 定义循环If N Mod I 0 Then Exit For Nex…

jenkins 发布job切换不同的jdk版本/ maven版本

1. 技术要求 因为有个新的项目需要使用jdk17 而旧的项目需要jdk1.8 这就需要jenkins在发布项目的时候可以指定jdk版本 2. 解决 jenkins全局工具配置页面 配置新的jdk 路径 系统管理-> 全局工具配置 如上新增个jdk 名称叫 jdk-17 然后配置jdk-17的根路径即可&#xff08;这…

趣味微项目:玩转Python编程,轻松学习快乐成长!

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 在学习Python编程的旅程…

Mysql读取binlog并分析 binlog

1&#xff0c;Mysql 开启 binlog 配置文件中增加 [mysqld] log-binmysql-bin 2.常用 binlog命令 # 是否启用binlog日志 show variables like log_bin;# 查看详细的日志配置信息 show global variables like %log%;# 查看binlog的目录 show global variables like "%l…

无涯教程-Flutter - Dart简介

Dart是一种开源通用编程语言&#xff0c;它最初是由Google开发的&#xff0c; Dart是一种具有C样式语法的面向对象的语言&#xff0c;它支持诸如接口&#xff0c;类之类的编程概念&#xff0c;与其他编程语言不同&#xff0c;Dart不支持数组&#xff0c; Dart集合可用于复制数据…

The remote endpoint was in state [TEXT_FULL_WRITING]

报这个错是因为在websocket接收与发送消息时&#xff0c;资源互抢造成的&#xff0c;有很多帖子说将session锁住&#xff0c; 但是同一个账号多个客户端登陆的时候&#xff0c;session是不同的&#xff0c;所以只能锁住一个session&#xff0c;还是出现这个问题。 解决办法&a…

FPGA GTX aurora 8b/10b编解码 PCIE 视频传输,提供2套工程源码加QT上位机源码和技术支持

目录 1、前言免责声明 2、我这里已有的 GT 高速接口解决方案3、GTX 全网最细解读GTX 基本结构GTX 发送和接收处理流程GTX 的参考时钟GTX 发送接口GTX 接收接口GTX IP核调用和使用 4、设计思路框架视频源选择ADV7611解码芯片配置及采集动态彩条视频数据组包GTX aurora 8b/10b数据…