2508. 添加边使所有节点度数都为偶数 c++

news2024/11/24 12:54:21

给你一个有 n 个节点的 无向 图,节点编号为 1 到 n 。再给你整数 n 和一个二维整数数组 edges ,其中 edges[i] = [ai, bi] 表示节点 ai 和 bi 之间有一条边。图不一定连通。

你可以给图中添加 至多 两条额外的边(也可以一条边都不添加),使得图中没有重边也没有自环。

如果添加额外的边后,可以使得图中所有点的度数都是偶数,返回 true ,否则返回 false 。

点的度数是连接一个点的边的数目。

示例 1:

输入:n = 5, edges = [[1,2],[2,3],[3,4],[4,2],[1,4],[2,5]]
输出:true
解释:上图展示了添加一条边的合法方案。
最终图中每个节点都连接偶数条边。

示例 2:

输入:n = 4, edges = [[1,2],[3,4]]
输出:true
解释:上图展示了添加两条边的合法方案。

示例 3:

输入:n = 4, edges = [[1,2],[1,3],[1,4]]
输出:false
解释:无法添加至多 2 条边得到一个符合要求的图。

提示:

  • 3 <= n <= 105
  • 2 <= edges.length <= 105
  • edges[i].length == 2
  • 1 <= ai, bi <= n
  • ai != bi
  • 图中不会有重边
class Solution {
private:
    int vexs[100001];
    int vindex[4];
public:
    bool isPossible(int n, vector<vector<int>>& edges) {
        unordered_set<int> vex[n+1];
        for(auto e :edges){
            int x=e[0];
            int y=e[1];
            vex[x].insert(y);
            vex[y].insert(x);
        }
        vector<int> jishu;
        for(int i=1;i<=n;i++){
            if(vex[i].size()%2==1){
                jishu.push_back(i);
            }
        }
        int size=jishu.size();
        if(size==0){
            return true;
        }else if(size==2){
            int x=jishu[0],y=jishu[1];
            if(!vex[x].count(y)) return true;
            else{
                for(int k=1;k<=n;k++){
                    if(x!=k&&y!=k&&!vex[x].count(k)&&!vex[y].count(k))
                        return true;
                    else 
                        return false;
                }
            }
        }else if(size==4){
            int a=jishu[0],b=jishu[1],c=jishu[2],d=jishu[3];
            return !vex[a].count(b)&&!vex[c].count(d)||!vex[a].count(c)&&!vex[b].count(d)||!vex[a].count(d)&&!vex[c].count(b);
        }

       return false;
    }
};

 思路参照:力扣

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

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

相关文章

C51——定时器控制寄存器

定时器的本质原理&#xff1a; 每经过一个一起周期&#xff0c;就加1 在寄存器里加 当我们想要操作寄存器的时候 就要找到TCON 当它开始数数的时候&#xff0c;会有天花板&#xff0c;会有溢出。 那我们怎么知道他溢出了&#xff1f;有TF0&#xff0c;当TF0 出现变化的时…

【剧前爆米花--爪哇岛寻宝】

作者&#xff1a;困了电视剧 专栏&#xff1a;《JavaSE语法与底层详解》 文章分布&#xff1a;这是一篇关于接口的文章&#xff0c;在本篇文章中我会将接口常用的一些实例进行讲解&#xff0c;以及部分方法在重写中的思想。 目录 Comparable和Comparator接口使用 Object类 t…

JDBC的简单使用与封装

目录 1、JDBC 2、JDBC的常用接口 1.Driver接口 2.Connection接口 3.Statement接口 4.ResultSet接口 3、JDBC的基本使用 1&#xff09;、简单的增删查改 Ⅰ、查 Ⅱ、增 Ⅲ、改 Ⅳ、删 2&#xff09;简单封装 1、JDBC 我们先了解JDBC是什么&#xff0c;JDBC的全称是Java数…

2018年全国职业技能大赛中职组“网络安全”赛项—基础题(解析)

2018年全国职业技能大赛中职组“网络安全”赛项—基础题&#xff08;解析&#xff09; 任务一、nmap 1、nmap sP -n 192.168.100.133 //进行ping扫描 1.1、nmap -Pn -n 192.168.100.133 //目标禁用 绕过ping 扫描 2、nmap -A -n ip // 对ip进行综合性扫描 3、nmap -O -n…

TiDB-学习笔记

编写这个笔记&#xff0c;希望能记录下学习TiDB时候的知识点。 目录 第一章 1.事务 1.1 SQL-92标准&#xff1a; 1.2 事务的隔离级别 2.在TiDB学习 SQL 语句 第二章 第三章 第一章 1.事务 事务的特性&#xff08;ACID&#xff09; atomicity原子性、consistency一致性、i…

网上花店网页代码 html静态花店网页设计制作 dw静态鲜花网页成品模板素材网页 web前端网页设计与制作 div静态网页设计

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…

全志V853 在 NPU 转换 YOLO V3 模型

NPU 转换 YOLO V3 模型 YOLO 全称是 You Only Look Once&#xff08;你只需看一次&#xff09;&#xff0c;从名称上也能看出这种算法速度快的优势&#xff0c;因此在许多边缘设备上&#xff0c;YOLO 算法的使用十分广泛。YOLOV3 是华盛顿大学研究生 Joseph Redmon 所开发&…

matlab学习笔记(九)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 matlab学习笔记&#xff08;九&#xff09;一、信号采样二、信号重建一、信号采样 信号的采样原理图如下图所示&#xff1a; 其数学模型表示为&#xff1a; 其中的f(t)为原…

11、Mysql高级之SQL优化

11、Mysql高级之SQL优化 文章目录11、Mysql高级之SQL优化0 SQL优化1 大批量插入数据2 优化insert语句3 优化order by语句3.1 环境准备3.2 两种排序方式3.3 Filesort 的优化4 优化group by 语句5 优化嵌套查询6 优化OR条件7 优化分页查询7.1 优化思路一7.2 优化思路二8 使用SQL提…

【Budibase】搭建低代码开发平台

Budibase介绍 Budibase 是一套开源的低代码开发平台&#xff0c;支持一键数据库及API 接入&#xff0c;支持简单的 JS 关联前后端数据&#xff0c;有细致的权限访问管理&#xff0c;对移动端有良好的支持。它主打企业流程自动化&#xff0c;有完善的自动化流程设计&#xff0c…

NETDMIS5.0界面介绍

1.启动界面介绍 双击桌面快捷方式&#xff0c;打开NET.DMISS启动界面如下图&#xff0c;包含三个菜单是文件、设置语言、帮助。 2.工作界面介绍 默认测量界面包括主菜单&#xff0c;工具条&#xff0c;节点程序界面&#xff08;显示测量过程&#xff09;&#xff0c;CAD视窗…

(免费分享)基于ssm简易网盘系统

开发工具&#xff1a;IDEA&#xff0c;mysql5.7 Tomcat8.0&#xff0c;jdk1.8 package cn.tangtj.clouddisk.web;import cn.tangtj.clouddisk.entity.User; import cn.tangtj.clouddisk.utils.UserUtil; import org.apache.logging.log4j.LogManager; import org.apache.loggi…

嵌入式应用开发|Linux文件I/O常用的四种访问方式

在Linux系统中&#xff0c;一切都可以看成"文件"<通常包含&#xff1a;普通文件、驱动文件、网络通信文件等等>&#xff0c;系统中所有的操作都可以通过文件I/O实现&#xff0c;因此&#xff0c;掌握文件常用接口很有必要。 0.前言 屏幕前的你如果懂得main函数…

SAP S4 如何快速配置一家公司

之前配置公司采用的方法是copy的方式来配置&#xff0c;后来在做其他配置的时候发现&#xff0c;copy的方法会把很多不需要的配置也copy进来了。所就我从新定义了一个公司来进行学习研究。配置一定空的公司很简单&#xff0c;只需要三步&#xff1a; 1 定义和分配公司 • 公司…

Java中的异常、IO与NIO面试题

✅作者简介&#xff1a;热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏&#xff1a;Java面试题…

萤石网络通过注册:9个月净利2亿同比降28% 海康威视为大股东

雷递网 雷建平 12月19日杭州萤石网络股份有限公司&#xff08;简称&#xff1a;“萤石网络”&#xff09;日前通过注册&#xff0c;准备在科创板上市。萤石网络计划募资37.39亿元&#xff0c;其中&#xff0c;22亿元用于萤石智能制造重庆基地项目&#xff0c;8亿元用于新一代物…

论文投稿指南——中文核心期刊推荐(航空、航天)

【前言】 &#x1f680; 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊 &#x1f384; 在期刊论文的分布中&#xff0c;存在一种普遍现象&#xff1a;即对于某一特定的学科或专业来说&#xff0c;少数期刊所含…

做Python网络爬虫需要掌握哪些核心技术?

在当下这个社会&#xff0c;如何有效地提取并利用信息成为一个巨大的挑战。基于这种巨大的市场需求&#xff0c;爬虫技术应运而生&#xff0c;这也是为什么现在爬虫工程师的岗位需求量日益剧增的原因。那么做Python网络爬虫需要掌握哪些核心技术呢&#xff1f;下面我们来一起看…

机器学习 特征工程及模型聚合

目录 一&#xff1a;什么是特征工程 二&#xff1a;特征工程方法 三&#xff1a;独热编码 四&#xff1a;归一化处理 五&#xff1a;特征工程方法 六&#xff1a;特征工程处理过程 七&#xff1a;Kaggle房价预测实际案例 一&#xff1a;什么是特征工程 1 是最大限度地从…

React源码分析6-hooks源码

本文将讲解 hooks 的执行过程以及常用的 hooks 的源码。 hooks 相关数据结构 要理解 hooks 的执行过程&#xff0c;首先想要大家对 hooks 相关的数据结构有所了解&#xff0c;便于后面大家顺畅地阅读代码。 Hook 每一个 hooks 方法都会生成一个类型为 Hook 的对象&#xff…