1042. 不邻接植花
有 n 个花园,按从 1 到 n 标记。另有数组 paths ,其中 paths[i] = [xi, yi] 描述了花园 xi 到花园 yi 的双向路径。在每个花园中,你打算种下四种花之一。
另外,所有花园 最多 有 3 条路径可以进入或离开.
你需要为每个花园选择一种花,使得通过路径相连的任何两个花园中的花的种类互不相同。
以数组形式返回 任一 可行的方案作为答案 answer,其中 answer[i] 为在第 (i+1) 个花园中种植的花的种类。花的种类用 1、2、3、4 表示。保证存在答案。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/flower-planting-with-no-adjacent
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题意!:
就是有四种颜色的花可以选择,给每个公园种一种颜色的花,给出所有公园之间的路径信息,要求有路径连通的两个公园种的花的颜色不能相同。给出一种满足要求的答案。
思路:
这道题相信对于各位大佬来说是一点难度也没有。就是一个简单的涂色问题,dfs或者bfs都是可以解决的,这是普通的思路。
对于这道题而言,搜索回溯其实都不用,因为题目中给出,保证存在答案,这说明无论我们怎么种花,其实都是可以找到答案的。
因此我们只需要对每一个公园检索一下哪些颜色的花是可以种的从中选一种种就可以了。
代码:
class Solution {
public:vector<int> gardenNoAdj(int n, vector<vector<int>>& paths) {vector<vector<int>> e(n+1);//邻接表存有路径连通的花园for(auto &q : paths){e[q[0]].push_back(q[1]);e[q[1]].push_back(q[0]);}vector<int> ans(n , 0);int color[5] = {0};for(int i = 1 ; i <= n ; i++){memset(color , 0 , sizeof(color));for(int x : e[i]){if(ans[x-1] > 0){color[ans[x-1]] = 1;}}for(int j = 1 ; j < 5 ; j++){if(!color[j]){ans[i-1] = j;break;}}}return ans;}
};
相关文章:
1042. 不邻接植花
有 n 个花园,按从 1 到 n 标记。另有数组 paths ,其中 paths[i] [xi, yi] 描述了花园 xi 到花园 yi 的双向路径。在每个花园中,你打算种下四种花之一。 另外,所有花园 最多 有 3 条路径可以进入或离开. 你需要为每个花园选择一…...
Linux FTP服务
FTP服务 作用 传输文件 端口 FTP服务器默认使用TCP协议的20、21端口与客户端进行通信 20端口用于建立数据连接,并传输文件数据 21端口用于建立控制连接,并传输FTP控制命令 模式 FTP数据连接分为主动模式和被动模式 主动模式:客户端告诉服务端…...
JavaScript基础入门全解析(下)
数据类型(重点) ●是指我们存储在内存中的数据的分类,为了方便数据的管理,将数据分成了不同的类型 ●我们通常分为两大类 基本数据类型 和 复杂数据类型(引用数据类型) 基本数据类型 ●在js中基本数据类…...
【C++初阶】(入门)输入输出
#include< iostream> std是C标准库的命名空间名,C将标准库的定义实现都放到这个命名空间中 文章目录 ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨👻一、iostream库介绍👻二、使用总结 ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ Ǵ…...
初识Linux+Linux基本指令(一)
目录 一.😆计算机与操作系统😆 计算机与操作系统发展史简介: 计算机与操作系统的关系: 二.😄Linux操作系统😄 开源软件的代名词:Linux 非图形化界面的Liunx 三.😆Linux基本指令之文件管理篇😆 1.操…...
部署架构 因为单体架构痛点 升级到微服务架构
如图为单体部署 痛点 多人协作可能产生很多的回归测试 代码管理复杂度提升 软件包升级会导致增加测试次数 举例 单体电商 1增加功能(增加小程序平台) 2 并发增加 出现 1 代码复用 2 系统间相互调用 3 接口不仅要对外服务,也得对内提供接口 4 数据分析功…...
mapreduce打包提交执行wordcount案例
文章目录 一、源代码1. WordCountMapper类2. WordCountReducer类3. WordCountDriver类4. pom.xml 二、相关操作和配置1. 项目打包2. 带参测试3. 上传打包后的jar包和测试文档4. 增大虚拟内存5.启动集群6.在hdfs上创建输入文件夹和上传测试文档Hello.txt7. 利用jar包在hdfs实现文…...
MyBatis(十六)MyBatis使用PageHelper
一、limit分页 mysql的limit后面两个数字: 第一个数字:startIndex(起始下标。下标从0开始。) 第二个数字:pageSize(每页显示的记录条数) 假设已知页码pageNum,还有每页显示的记录…...
铁路轨道不平顺数据分析与预测
铁路轨道不平顺数据分析与预测 1.引言 铁路轨道作为铁行车的基础设施,是铁路线路的重要组成部分。随着经济和交通运输业的发展,我国的铁路运输正朝着高速和重载方向迅速发展,与此同时,轨道结构承受来自列车荷载、运行速度的冲击…...
好家伙,9:00面试,9:06就出来了,问的实在是太...
从外包出来,没想到死在另一家厂子 自从加入这家公司,每天都在加班,钱倒是给的不少,所以也就忍了。没想到2月一纸通知,所有人不许加班,薪资直降30%,顿时有吃不起饭的赶脚。 好在有个兄弟内推我去…...
【MySQL】数据库约束和聚合函数的使用
目录 上篇在这里喔~ 1.数据库约束 1.NULL约束 2.UNIQUE唯一约束 3.DEFAULT默认值约束 4.PRIMARY KEY主键约束 5.FOREIGN KEY外键约束 2.表的设计 1.设计思路编辑 2.固定套路编辑 2.1一对一关系 2.2一对多关系 编辑 2.3多对多关系 编辑编辑编辑 3.插入…...
SpringMvcFoundation
SpringMvcFoundation 一. SpringMVC简介1.1 优点二.Spring入门案例2.1 导入坐标2.2 编写SpringBoot启动类2.3 编写controller2.4 入门案例工作流程分析2.4.1 启动服务器初始化过程2.4.2 单次请求过程2.5 PostMan简介2.5.1 PostMan基本使用2.6 请求与相应2.6.1 请求映射路径2.6.…...
从零学习SDK(7)如何打包SDK
打包SDK的目的是为了方便将SDK提供给其他开发者或用户使用,以及保证SDK的兼容性和安全性。打包SDK可以有以下几个好处: 减少依赖:打包SDK可以将SDK所需的库、资源、文档等打包成一个文件或者一个目录,这样就不需要用户再去安装或…...
Python OpenCV 3.x 示例:1~5
原文:OpenCV 3.x with Python By Example 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 计算机视觉 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 当别人说你没有底线的时候,你最…...
葵铭智能面经4.18
虽然是小厂,但面的还是挺有深度的 1.自我介绍 第一个项目 2.有没有用过流协议 3.视频保存有没有切片,有没有考虑过大视频上传的性能问题 4.项目是同步的还是异步的 第二个项目 5.搜索引擎是动态的还是静态的,有没有动态的去爬取boost库…...
MyBatis 03 -MyBatis动态SQL与分页插件
动态SQL与分页插件 动态SQL与分页插件 动态SQL与分页插件1 动态SQL1.1 < sql >1.2 < if >1.3 < where >1.4 < set >1.5 < choose >1.6 < trim >1.7 < foreach > 2 mybatis缓存2.1 一级缓存2.2 二级缓存 3 分页插件3.1 概念3.2 访问与…...
4.10、字节序列转换函数
4.10、字节序列转换函数 1.字节序转换函数2.字节序转换函数有哪些3.字节序转换函数的使用 1.字节序转换函数 当格式化的数据在两台使用不同字节序的主机之间直接传递时,接收端必然错误的解释之。解决问题的方法是:发送端总是把要发送的数据转换成大端字…...
研究LLMs之前,不如先读读这五篇论文!
目标:了解 LMM 背后的主要思想 ▪️ Neural Machine Translation by Jointly Learning to Align and Translate ▪️ Attention Is All You Need ▪️ BERT ▪️ Improving Language Understanding by Generative Pre-Training ▪️ BART Neural Machine Translati…...
认识BASH这个Shell
文章目录 认识BASH这个Shell硬件、内核与shell为什么要学命令行模式的Shell?Bash Shell的功能命令与文件补全(TAB)命令别名设置(alias)历史命令(history)任务管理、前台、后台控制(jobs,fg,bg)通配符程序化脚本 查询命令是否为Bash shell 的内…...
用SQL语句操作Oracle数据库——数据更新
数据更新 数据库中的数据更新操作有3种:1)向表中添加若干行数据(增);2)删除表中的若干行数据(删);3)修改表中的数据(改)。对于这3种操作…...
数字游民工作流:OpenClaw+nanobot全球远程办公方案
数字游民工作流:OpenClawnanobot全球远程办公方案 1. 为什么需要自动化全球办公方案 作为一名长期在东南亚各国旅居的数字游民,我深刻体会到跨时区工作的痛苦。凌晨三点被欧洲同事的Slack消息吵醒,错过亚太区的晨会,或是忘记在不…...
GetQzonehistory:你的QQ空间回忆一键备份终极指南
GetQzonehistory:你的QQ空间回忆一键备份终极指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾担心那些记录青春岁月的QQ空间说说不小心丢失?从青涩的…...
终极指南:掌握AMD Ryzen SMU调试工具,解锁硬件调优新境界
终极指南:掌握AMD Ryzen SMU调试工具,解锁硬件调优新境界 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地…...
提升协作效率:开源实时协作Markdown工具全解析
提升协作效率:开源实时协作Markdown工具全解析 【免费下载链接】codimd CodiMD - Realtime collaborative markdown notes on all platforms. 项目地址: https://gitcode.com/gh_mirrors/co/codimd 在数字化协作日益频繁的今天,一款能够让团队成员…...
手把手教你部署GLM-4v-9B:9B参数多模态模型,单卡就能跑
手把手教你部署GLM-4v-9B:9B参数多模态模型,单卡就能跑 1. GLM-4v-9B模型简介 GLM-4v-9B是智谱AI于2024年开源的多模态大模型,具有以下核心特点: 参数规模:90亿参数,单张24GB显存的显卡即可运行多模态能…...
AI读脸术本地运行:私有化部署人脸分析系统详细步骤
AI读脸术本地运行:私有化部署人脸分析系统详细步骤 1. 什么是AI读脸术:不联网也能识别人脸属性 你有没有想过,一张普通照片里藏着多少信息?比如这张自拍——不用上传到任何云端服务,也不用担心数据被谁看到ÿ…...
Windows Defender Remover:系统性能优化与防护机制管理指南
Windows Defender Remover:系统性能优化与防护机制管理指南 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_mirror…...
BME280 I²C地址固化驱动:面向Adafruit模块的嵌入式优化实践
1. BME280传感器驱动库深度解析:面向Adafruit模块的IC地址固化设计与嵌入式工程实践1.1 项目定位与工程背景BME280是博世(Bosch Sensortec)推出的高精度环境传感器,集成温度、湿度和气压三参数测量功能,采用MEMS微机电…...
从理论到实践:双有源桥DAB-SPS控制模式仿真全解析
1. 双有源桥DAB与SPS控制模式入门 第一次接触双有源桥(Dual Active Bridge,简称DAB)时,我被它优雅的对称结构吸引住了。这种DC-DC变换器拓扑就像一座精心设计的桥梁,两侧各有一个全桥电路,通过高频变压器耦…...
ESP8266红外TCP服务框架:轻量级协议网关设计
1. 项目概述IrServiceBase是专为 ESP8266 系列微控制器(包括 ESP-01、NodeMCU、Wemos D1 Mini 等)设计的 Arduino C 库,其核心定位并非直接驱动红外发射/接收硬件,而是构建一个可复用、可扩展的 TCP/IP 红外服务框架。该库不实现底…...
