【Java|golang】1042. 不邻接植花---邻接表着色

news2024/11/15 8:21:55

有 n 个花园,按从 1 到 n 标记。另有数组 paths ,其中 paths[i] = [xi, yi] 描述了花园 xi 到花园 yi 的双向路径。在每个花园中,你打算种下四种花之一。

另外,所有花园 最多 有 3 条路径可以进入或离开.

你需要为每个花园选择一种花,使得通过路径相连的任何两个花园中的花的种类互不相同。

以数组形式返回 任一 可行的方案作为答案 answer,其中 answer[i] 为在第 (i+1) 个花园中种植的花的种类。花的种类用 1、2、3、4 表示。保证存在答案。

示例 1:

输入:n = 3, paths = [[1,2],[2,3],[3,1]]
输出:[1,2,3]
解释:
花园 1 和 2 花的种类不同。
花园 2 和 3 花的种类不同。
花园 3 和 1 花的种类不同。
因此,[1,2,3] 是一个满足题意的答案。其他满足题意的答案有 [1,2,4]、[1,4,2] 和 [3,2,1]
示例 2:

输入:n = 4, paths = [[1,2],[3,4]]
输出:[1,2,1,2]
示例 3:

输入:n = 4, paths = [[1,2],[2,3],[3,4],[4,1],[1,3],[2,4]]
输出:[1,2,3,4]

提示:

1 <= n <= 104
0 <= paths.length <= 2 * 104
paths[i].length == 2
1 <= xi, yi <= n
xi != yi
每个花园 最多 有 3 条路径可以进入或离开

    public int[] gardenNoAdj(int n, int[][] paths) {
        Map<Integer, Set<Integer>> graph = new HashMap<>();
        for (int i = 0; i < n; i++) {
            graph.put(i,new HashSet<>());
        }
        for (int[] path : paths) {
           graph.get(path[0]-1).add(path[1]-1);
           graph.get(path[1]-1).add(path[0]-1);
        }
        int[] res = new int[n];
        for (int i = 0; i < n; i++) {
            Set<Integer> flags = new HashSet<>();
            for (Integer path : graph.get(i)) {
                flags.add(res[path]);
            }
            for (int j = 1; j <= 4; j++) {
                if (!flags.contains(j)){
                    res[i]=j;
                    break;
                }
            }
        }
        return res;
    }

在这里插入图片描述

func gardenNoAdj(n int, paths [][]int) []int {
	graph := make(map[int][]int,n)
	for i := 0; i < n; i++ {
		graph[i]=make([]int,0)
	}
	for _, path := range paths {
		graph[path[0]-1]=append(graph[path[0]-1],path[1]-1)
		graph[path[1]-1]=append(graph[path[1]-1],path[0]-1)
	}
	res := make([]int,n)
	for i := 0; i < n; i++ {
		flags:=make([]bool,5)
		for _, path := range graph[i] {
			flags[res[path]]=true
		}
		for j := 1; j <= 4; j++ {
			if !flags[j]{
				res[i]=j
				break
			}
		}
	}
	return res
}

在这里插入图片描述

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

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

相关文章

C++用户信息管理服务 Thrift框架 Mysql数据落地 Redis数据缓存 Kafka 消息队列 总结 附主要源码

不知不觉入职已经一个月了&#xff0c;近期提交了考核2&#xff0c;要求如下&#xff1a; 1、编写一个管理用户信息的服务&#xff0c;通过thrift的远程过程调用实现用户信息管理功能 2、用户信息至少包括 唯一ID、用户名、性别、年龄、手机号、邮箱地址、个人描述 3、提供创建…

PHP+Vue+java导师学生双选系统设计与实现springnboot+pyton

为了直观显示系统的功能&#xff0c;运用用例图这样的工具显示分析的结果。分析的管理员功能如下。管理员管理学员&#xff0c;导师&#xff0c;管理项目信息&#xff0c;管理项目提交&#xff0c;管理指导项目信息。运行环境:phpstudy/wamp/xammp等 卓越导师双选系统根据调研&…

GCC 常用命令

GCC 编译过程 一个 C/C文件要经过预处理(preprocessing)、编译(compilation)、汇编(assembly)和链接(linking) 等 4 步才能变成可执行文件 &#xff08;1&#xff09; 预处理 C/C源文件中&#xff0c;以“#”开头的命令被称为预处理命令&#xff0c;如包含命令“#include”、…

系统集成项目管理工程师案例分析考点汇总(沟通/干系人、风险、合同等)

沟通及干系人管理常见考点1. 沟通管理计划的内容2. 项目绩效报告的主要内容3. 沟通中容易出现的问题4. 如何采取有效措施改进沟通5. 如何召开有效的会议 合同管理常见考点1. 合同签订时应注意的内容及条款2. 合同管理常见的问题3. 合同管理问题的应对措施 采购管理常见考点1. 采…

IntelliJ 上 Azure Event Hubs 全新支持来了!

大家好&#xff0c;欢迎来到 Java on Azure Tooling 的3月更新。在这次更新中&#xff0c;我们将介绍 Azure Event Hubs 支持、Azure Functions 的模板增强&#xff0c;以及在 IntelliJ IDEA 中部署 Azure Spring Apps 时的日志流改进。要使用这些新功能&#xff0c;请下载并安…

使用docker搭建Milvus向量数据库

Milvus向量数据库是什么&#xff1f; 官网是这样说的&#xff1a; Milvus创建于2019年&#xff0c;目标单一&#xff1a;存储、索引和管理由深度神经网络和其他机器学习&#xff08;ML&#xff09;模型生成的大量嵌入向量。 作为一个专门用于处理输入向量查询的数据库&#…

操作系统原理 —— 什么是系统调用?(五)

什么是系统调用&#xff1f; 有什么用作用&#xff1f; 我们想想怎么是系统调用呢&#xff1f; 系统调用 是操作系统提供给应用程序(程序员)使用的接口&#xff0c;可以理解为一种可供应用程序调用的特殊函数&#xff0c;应用程序可以发出系统调用请求来获得操作系统的服务。…

编译原理复习(2023.4.25考试版本)

本次复习采用的是这本书&#xff0c;如有书写不当的地方&#xff0c;欢迎批评指正&#xff01; 第一章 第二章 符号串的运算 相等&#xff1a;两个符号串一模一样的 长度&#xff1a;数他有几个就行了 连接&#xff1a;跟在后面直接写就行了 符号传串的逆&#xff1a;在符…

详解UDP协议与实现UDP版本字典翻译客户端与服务器

文章目录 前言1. UDP协议介绍2.UDP Socket的介绍3. UDP版本字典翻译服务器4. UDP版本字典翻译客户端 前言 UDP协议也是传输层的一种协议&#xff0c;上篇文章我们介绍了TCP协议可以参考我的另一篇博客详解TCP协议以及实现TCP版本的字典翻译服务器客户端&#xff0c;以下来介绍…

【k8s】Wordpress(PHP+nginx+mysql)迁移到k8s

一、迁移思路&#xff1a; 1、制作服务镜像; 1.1 挑选合适的基础镜像; 1.2 准备代码相关的文件; 1.3 通过dockerfile构建镜像;2、制作Kubernetes服务&#xff0c;并完成调度; 2.1确定服务运行的模式&#xff08;内部运行or 对外提供); 2.2确定服务所使用的控制器; 2.3服务是否…

【邀请函】第四届宁德国际新能源电池与智造技术产业大会(4月26 宁德)| 达索系统百世慧®

未来5-10年&#xff0c;新能源电池行业将呈现“一大支柱、两大应用场景、多元化技术线路”的发展特征。动力锂电池仍将主导新能源电池产业&#xff0c;并加速乘用场景落地。随着技术的日趋成熟&#xff0c;量产后成本下降&#xff0c;优势逐步凸显。 但随着技术迭代&#xff0…

Maya 贴图链接检测重链打包插件tjh_lost_textures_finder 1.3.3

一、问题描述&#xff1a; maya在模型材质贴图及渲染制作流程中&#xff0c;经常会遇到工程文件路径更改后&#xff0c;图片链接失效的问题&#xff0c;还有就是萌新们不懂规矩&#xff0c;图片路径乱放&#xff0c;而造成的图片打包时巨大工作量&#xff0c;南无阿弥陀佛。此…

vue关于echarts后端返回格式取值方法

在vue中&#xff0c;接口返回如下数据&#xff1a; data: {充电桩: [0, 0, 78], 红外摄像头: [0, 0, 0], 火焰探测器: [0, 1, 0], 烟雾传感器: [0, 1, 1], 限流保护器: [0, 0, 1]}&#xff0c; 其中数组里第一个值应该放在data1&#xff0c;第二个放在data2&#xff0c;第三个…

LCHub:微软Power Apps成为保险行业最受欢迎低代码平台

全球领先的保险行业软件服务商Adacta发布了《保险行业低代码应用情况》报告,深度揭示了保险领域对低代码的应用、市场增长、发展趋势等。 该报告对来自德国、奥地利、瑞士、法国、英国、比利时、荷兰和卢森堡等国家的100名保险行业的高管进行了深度调查。(发送“保险低代码”…

社科院杜兰大学金融管理硕士项目——不要停止奔跑,前方更值得期待

不要停止奔跑&#xff0c;不要回顾来路&#xff0c;来路无可眷恋&#xff0c;唯有前方值得期待。——《马男波杰克》。这段话很适用在职的我们&#xff0c;当我们在职场经过打磨&#xff0c;我们被磨平了棱角&#xff0c;被磨掉了脾气&#xff0c;但我们依然相信前方会更值得我…

安装和部署elasticsearch

文章目录 一、安装elasticsearch1.1 部署单点elasticsearch1.1.1 创建网络1.1.2 安装镜像1.1.3 部署1.1.4 测试 1.2 部署kibana1.2.1 安装镜像1.2.2 部署1.2.3 测试1.2.4 DevTools工具 1.3 安装IK分词器1.3.1 安装ik插件1.3.2 查找数据卷目录1.3.3 上传至容器1.3.4 测试 一、安…

腾讯优图入选人工智能顶级会议AAAI论文--10篇

人工智能领域的国际顶级会议AAAI 2020将于2月7日-2月12日在美国纽约举办。近年来随着人工智能的兴起&#xff0c;AAAI每年举办的学术会议也变得越来越火热&#xff0c;每年都吸引了大量来自学术界、产业界的研究员、开发者投稿、参会。 以AAAI2019为例&#xff0c;论文提交数量…

工单管理系统的好处

工单管理系统是一款能够实现业务流程管理&#xff0c;工作任务管理&#xff0c;服务项目管理的工具。该系统能够帮助企业提高客户服务质量、加快企业服务响应速度、降低企业运营成本。 工单管理系统能通过制定计划和控制流程来减少客户投诉&#xff0c;提高客户满意度。可以说…

为什么安全从业者应该了解业务

不久之前&#xff0c;网络安全还被视为独立于企业其他部分的事物。但在过去的十年里&#xff0c;它终于得到了当之无愧、渴望已久的认可和关注。 越来越多的公司聘请首席信息安全官来帮助制定整体业务战略&#xff0c;使安全成为公司董事会的首要任务。 最后&#xff0c;首席…

k8s允许master节点参与调度的设置方法

默认情况下&#xff0c;master节点是不参与调度的&#xff0c;且在master节点上有一个污点NoSchedule&#xff08;表示k8s将不会将Pod调度到具有该污点的Node上&#xff09;&#xff0c;有关污点章节可参考https://www.cnblogs.com/panw/p/16343392.html 如果想让master节点参与…