685.冗余连接II

685.冗余连接II


题目链接:685.冗余连接II

代码如下:

//并查集
//参考链接:https://leetcode.cn/problems/redundant-connection-ii/solutions/417164/685-rong-yu-lian-jie-iibing-cha-ji-de-ying-yong-xi
class Solution 
{
public:vector<int> findRedundantDirectedConnection(vector<vector<int>>& edges) {int inDegree[N]={0};n=edges.size();for(int i=0;i<edges.size();i++){inDegree[edges[i][1]]++;//统计入度}vector<int> vec;//记录入度为2的边for(int i=edges.size()-1;i>=0;i--){if(inDegree[edges[i][1]]==2){vec.push_back(i);}}if(vec.size()>0){if(isTreeAfterRemoveEdge(edges,vec[0])){return edges[vec[0]];}else{return edges[vec[1]];}}return getRemoveEgdge(edges);}
private:static const int N = 1010;vector<int> father=vector<int>(N, 0);int n;//边的数量//并查集初始化void init(){for(int i=1;i<=n;i++){father[i]=i;}}//并查集寻根int find(int u){return u==father[u]?u:father[u]=find(father[u]);//路径压缩}//并查集判定u,v是否是一个根bool isSame(int u,int v){u=find(u);v=find(v);return u==v;}//将v->v这条边加入并查集void join(int u,int v){u=find(u);v=find(v);if(u==v)    return;father[v]=u;}//在有向图中找到删除的那条边,使其成为一棵树vector<int> getRemoveEgdge(const vector<vector<int>>& edges){   init();for(int i=0;i<edges.size();i++){if(isSame(edges[i][0],edges[i][1]))//构成了有向环,就需要删除{return edges[i];}join(edges[i][0],edges[i][1]);}return {};}//删除一条边后判断是否是树bool isTreeAfterRemoveEdge(const vector<vector<int>>& edges,int deleteEdge){init();for(int i=0;i<edges.size();i++){if(i==deleteEdge)   continue;if(isSame(edges[i][0],edges[i][1]))//构成了有向环,一定不是树{return false;}join(edges[i][0],edges[i][1]);}return true;}
};

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

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

相关文章

springboot用注解实现适配器模式

创建注解 Target({ElementType.TYPE}) Retention(RetentionPolicy.RUNTIME) Documented Component public interface Match {String value(); }处理 match 的工具类 import com.google.common.collect.Maps; import org.apache.commons.collections4.MapUtils; import org.sp…

鸿蒙OS开发:【Stage模型应用程序包结构】

Stage模型应用程序包结构 为了让开发者能对应用程序包在不同阶段的形态更有清晰的认知&#xff0c;分别对开发态、编译态、发布态的应用程序结构展开介绍。 开发态包结构 在DevEco Studio上[创建一个项目工程]&#xff0c;并尝试创建多个不同类型的Module。根据实际工程中的…

day25-0 1矩阵

目录 题目描述&#xff1a; 示例 1&#xff1a; 示例 2&#xff1a; 解决方案&#xff1a; 函数代码&#xff1a; 题目描述&#xff1a; 给定一个由 0 和 1 组成的矩阵 mat &#xff0c;请输出一个大小相同的矩阵&#xff0c;其中每一个格子是 mat 中对应位置元素到最近的…

vs2019 c++静态断言 static_assert ()

(1) 静态断言&#xff0c;就是在编译时候&#xff0c;让编译器测试一下&#xff0c; static_assert( bool a , “字符串”) 的第一个参数&#xff0c;若 第一个参数为 true &#xff0c;则表明程序可以被编译。否则&#xff0c;编译器拒绝编译。这是为了满足某些代码在语法语义…

分钟转换为天时分

function time(value){var time[] var day parseInt(value/60/24)var hourparseInt(value/60%24)var minparseInt(value%60)time[0]day>0?day:0time[1]hour>0?hour:0time[2]min>0?parseFloat(min):0console.log(time) }time(9630) value指的是分钟数 结果是&a…

RedisSearch深度解析:探索全文搜索的新境界

API对接平台一键对接ChatGPT3.5/4.0,Claude3,文心一言等AI模型,无需翻墙,国外信用卡👉AI模型聚合API-海鲸AI 一、什么是 RedisSearch RedisSearch 是 Redis Labs 提供的一个模块,用于在 Redis 数据库中实现全文搜索和二次索引功能。它不仅支持文本搜索,还支持结构化数…

UNIX域套接字

一、前言 作用&#xff1a; 用于实现一台主机上的两个进程的通信 二、用UDP服务端/客户端模型来实现一台主机上的两个进程的通信 2.1、服务器端 udp_server.c #include<stdio.h> // 包含标准输入输出库&#xff0c;用于printf等函数 #include <sy…

研究变压器感应耐压试验电源的能效和节能潜力

变压器感应耐压试验电源 变压器感应耐压试验电源在电源行业中是一种非常重要的设备&#xff0c;用于测试和验证变压器的绝缘性能。变压器感应耐压试验电源是一种专门为变压器感应耐压试验而设计的电源设备。它的工作原理基于变压器的感应原理&#xff0c;利用感应电压来对变压器…

实现 Flask 应用的 HTTPS 加密保护

文章目录 1. 获得免费的 SSL 证书步骤&#xff1a; 2. 配置 Flask 应用3. 测试和部署结论结论 在今天的网络环境中&#xff0c;保护网站和用户数据的安全至关重要。通过在 Flask 应用中启用 HTTPS 加密&#xff0c;您可以确保用户的数据在传输过程中得到保护。本文将介绍如何结…

数据分析(二)——导入外部数据,导入Excel数据,CSV文件,txt文件,HTML网页,数据抽取,DataFrame对象的loc属性与iloc属性

一.导入外部数据 1.导入.xIs或.xIsx文件 pd.read_ excel(io,sheet_ name,header) 1.1常用参数说明 ●io:表示.xIs或.xIsx文件路径或类文件对象 ●sheet name:表示工作表&#xff0c;取值如下表所示 ●header:默认值为0&#xff0c;取第一行的值为列名&#xff0c;数据为除列…

接口文档编写注意事项

接口文档编写注意事项 字段方面 ①不需要的字段、逻辑中固定值的字段&#xff08;可写死的字段&#xff09;不提供 ②逻辑上可以合并的字段合并 例如&#xff1a;当一个互斥条件下&#xff0c;分别返回了两个字段&#xff0c;这个时候就可以在这个基础上将两个字段合并成一个…

Android之实现《用户隐私政策》《服务条款》等文字点击可查看协议内容的超链接功能

一、步骤 1、控件 <TextViewandroid:id"id/tv_privacy"android:layout_width"match_parent"android:layout_height"wrap_content"android:text"协议提示文字"android:textSize"12sp"android:textColor"color/color…

(十)Python基础练习题一(50道选择题)#Python

本文整理了Python基础知识相关的练习题&#xff0c;共50道&#xff0c;适用于刚入门初级Python想巩固基础的同学。来源&#xff1a;如荷学数据科学题库&#xff08;技术专项-Python一&#xff09;。 1&#xff09; 2&#xff09; 3&#xff09; 4&#xff09; 5&#xff09; 6…

搞懂Servlet(1)- 介绍

介绍Servlet 今天&#xff0c;我们都意识到创建动态网页的必要性。动态网页就是网页内容会随着时间变化&#xff0c;或者内容会根据请求参数的不同而变化。如果你使用java编程&#xff0c;很幸运的是有一种使用Java生成动态网页的方式-Java Servlet。但是&#xff0c;在这之前…

Jetson orin scv3环境配置

记不清当时是怎么配置的环境了&#xff0c;难搞 python环境的安装&#xff1a; conda create -n scv3 python3.8安装torch 和torchvision 去这里找到jetpack版本对应的torch ,我的jetpack5.1.3&#xff0c;并且环境需要安装pytorch-lightning1.7.3,&#xff0c;对应的torch版本…

【web网页开发制作】Html+Css+Js游戏主题特效及轮播效果网页作业天涯明月刀(7页面附源码)

HTMLCSSJS游戏主题轮播效果 &#x1f354;涉及知识&#x1f964;写在前面✨特效展示特效1、轮播幻灯效果特效2和3、鼠标悬浮及点击效果 &#x1f367;一、网页主题&#x1f333;二、网页效果Page1、首页Page2、游戏简介Page3、新闻中心Page4、互动专区Page5、视听盛宴Page6、用…

ctfshow parse_url wp

第一关 这个parse_url函数就是解析URL并且进行拆分的 $url "https://www.example.com/path/to/page?param1value1&param2value2";$parsed_url parse_url($url);print_r($parsed_url); Array ([scheme] > https[host] > www.example.com[path] > /p…

【论文复刻】 堆叠柱状图变形

复刻了一下这篇论文里的fig4a&#xff1a;Impacts of COVID-19 and fiscal stimuli on global emissions and the Paris Agreement | Nature Climate Change 效果图&#xff1a;​ 主要步骤&#xff1a; 1. 数据准备&#xff1a;随机赋值 2. 数据处理&#xff1a;计算了一个…

机器学习中常用的几种距离——欧式、余弦等

目录 一、欧式距离&#xff08;L2距离&#xff09;二、曼哈顿距离&#xff08;L1距离&#xff09;三、汉明距离四、余弦相似度 一、欧式距离&#xff08;L2距离&#xff09; &#xff08;1&#xff09;二维空间的距离公式&#xff08;三维空间的在这个基础上类推&#xff09;&…

linux内核debug(二)在线调试内核kdb/kgdb工具使用及环境搭建

目录 一、引言 二、kgdb调试 ------>2.1、kgdb板端配置 ------------>2.1.1、添加编译内核参数 ------------>2.1.2、配置 ------>2.2、kgdb本地调试环境搭建 ------------>2.2.1、串口工具 ------------>2.2.2、连接板端 ------>2.3、kgdb调试 …