1042 不邻接植花

1042. 不邻接植花 这道题虽然属于图论题,但因为限制了每个节点的最大度为 3,同时提供了 4 个颜色,所以非常适合用贪心算法解决。通过构建邻接表,我们可以快速知道每个花园的邻居,然后选择未被使用的颜色即可,过程简单且效率高。这也是图着色问题中一个典型的贪心可行性应用场景。 阅读详情

一开始理解错题意。。写了个并查集没过
只是简单的考察图的数据结构==

class Solution {
public:
    vector<int> gardenNoAdj(int N, vector<vector<int>>& paths) {
        vector<vector<int>> g(N + 1);
        int type[N + 1];
        memset(type, 0, sizeof(type));
        for(auto i : paths)
        {
            g[i[0]].push_back(i[1]);
            g[i[1]].push_back(i[0]);
        }
        vector<int> ans;
        for(int i = 1; i <= N; ++i)
        {
            for(int j = 1; j <= 4; ++j)
            {
                bool vis = false;
                for(int k = 0; k < g[i].size(); ++k)
                    if(type[g[i][k]] == j) // 顺序挑选
                    {
                        vis = true;
                        break;
                    }
                if(!vis)
                {
                    type[i] = j;
                    ans.push_back(j);
                    break;
                }
            }
        }
        return ans;
    }
};
【C++图论】1042. 不邻接植花|1712 有 n 个花园,按从 1 到 n 标记。另有数组 paths ,其中 paths[i] = [xi, yi] 描述了花园 xi 到花园 yi 的双向路径。在每个花园中,你打算种下四种花之一。 另外,所有花园 最多 有 3 条路径可以进入或离开. 你需要为每个花园选择一种花,使得通过路径相连的任何两个花园中的花的种类互不相同。 以数组形式返回 任一 可行的方案作为答案 answer,其中 answer[i] 为在第 (i+1) 个花园中种植的花的种类。花的种类用 1、2、3、4 表示。保证存在答案。 阅读详情

相关推荐

从零到一:R与RStudio的安装与配置全攻略

本文提供了R与RStudio的完整安装与配置指南,涵盖Windows、Mac和Linux三大操作系统。从基础环境搭建到高级性能优化,详细介绍了R语言安装、RStudio配置、项目管理和实用技巧,帮助数据科学初学者快速搭建高效的分析工作环境。

weixin_29062671的博客 420

LeetCode-Python-1042. 不邻接植花

有N个花园,按从1到N标记。在每个花园中,你打算种下四种花之一。 paths[i] = [x, y]描述了花园x到花园y的双向路径。 另外,没有花园有 3 条以上的路径可以进入或者离开。 你需要为每个花园选择一种花,使得通过路径相连的任何两个花园中的花的种类互不相同。 以数组形式返回选择的方案作为答案answer,其中answer[i]为在第(i+1)...

Keep Coding 855

STM32实战篇:使用USART发送/接收数据

在发送字符时也可以直接使用其对应的ASCLL码,例如: USART_SendData(USART1, 0x61);

qq_74114817的博客 596

leetcode 1042. 不邻接植花(C++)

有N个花园,按从1到N标记。在每个花园中,你打算种下四种花之一。 paths[i] = [x, y]描述了花园x到花园y的双向路径。 另外,没有花园有 3 条以上的路径可以进入或者离开。 你需要为每个花园选择一种花,使得通过路径相连的任何两个花园中的花的种类互不相同。 以数组形式返回选择的方案作为答案answer,其中answer[i]为在第(i+1)个花园...

qq_27060423的博客 587

解决国内网页无法加载reCaptcha的方法

科普: reCaptcha是Google公司的验证码服务,方便快捷,改变了传统验证码需要输入n位失真字符的特点。reCaptcha在使用的时候是这样的: 只需要点一下复选框,Google会收集一些鼠标轨迹、网络信息、浏览器信息等等,依靠后端的神经网络判断是机器还是人,绝大多数验证会一键通过,无需像传统验证码一样。但是reCaptcha使用了google.com的域名,这个域名在国内是被墙的。所以,也就导致了官网上无法注册/登录的问题,挡住了不少人入正的脚步。 解决办法: 【第一步】安装fir

调皮李小怪博客 25万+

万字详解YOLOv8网络结构Backbone/neck/head以及Conv、Bottleneck、C2f、SPPF、Detect等模块

YOLOv8是由Ultralytics开发的最先进的目标检测模型,推升了速度、准确性和用户友好性的界限。YOLO这一缩写代表“你只看一次”(You Only Look Once),通过在一次网络传递中同时预测所有边界框,提升了算法的效率和实时处理能力。相比之下,其他一些目标检测技术需要经过多个阶段或过程来完成检测。YOLOv8在流行的YOLOv5架构上进行了扩展,在多个方面提供了改进。

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 14万+

Leetcode 1042:不邻接植花(超详细的解法!!!)

有N个花园,按从1到N标记。在每个花园中,你打算种下四种花之一。 paths[i] = [x, y]描述了花园x到花园y的双向路径。 另外,没有花园有 3 条以上的路径可以进入或者离开。 你需要为每个花园选择一种花,使得通过路径相连的任何两个花园中的花的种类互不相同。 以数组形式返回选择的方案作为答案answer,其中answer[i]为在第(i+1)个花园中种植的花的种类。花的种类用 1, 2...

coordinate的博客 1868

【异常】SpringCloud Gateway报错503 SERVICE_UNAVAILABLE “Unable to find instance for xxx-gen“

网关服务报错,如下。

奶爸的编程之路,也就一周冷个三天 4224

力扣C++ 1042. 不邻接植花

先说一下这道题的思路:主要是先根据给出的输入把图画出来,从第一个花园出发,设计第一个花园种植第一种花,之后到第二个花园,看看花园二与花园一之间是否有通路,如果有的话,把第二个花园种植上第二种花,否则种植第一种花一次类推。题目中的输入设置最多一个花园与其他三个花园相连接,所以只会有四种花的出现。 class Solution { public: vector<int> gar...

qq_39091546的博客 404

YOLOv11 模型轻量化全流程:从剪枝到量化,打造移动端“极速检测利器”

将浮点模型量化为INT8模型,减少内存占用并加速推理。# 加载剪枝后的模型# 转换为TorchScript# 静态量化# 保存量化模型量化后模型推理速度可再提升20%,而mAP损失小于1%。

m0_64661770的博客 465

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

从零开始算法之路 ---- 1042. 不邻接植花 (others)

前言:小白入门题解,算法大佬可以直接跳过此博客(大佬轻喷哈) 题源: 力扣(LeetCode)https://leetcode-cn.com/problems/flower-planting-with-no-adjacent/ 题目描述: 有 N 个花园,按从 1 到 N 标记。在每个花园中,你打算种下四种花之一。 paths[i] = [x, y] 描述了花园 x 到花园 y 的双向路径。 另外...

IT小白的博客 369

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Leetcode-图-1042.不邻接植花(简单)

1042.不邻接植花题目如下解题思路c++代码 题目如下 解题思路 1.先通过paths建立邻接表 2.遍历每个点选色,每次不选邻接的公园的颜色就可以了 c++代码 class Solution { public: vector<int> gardenNoAdj(int N, vector<vector<int>>& paths) { vector<vector<int>> g(N); vector

あなたの可愛い41 302

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Leetcode 1042. 不邻接植花 图染色

【代码】Leetcode 1042. 不邻接植花 图染色。

想买很多漂亮衣服但是买不起的博客 515

力扣力扣1042. 不邻接植花

题目要求在花园中种四种花,但每一对相邻的花园不能种同一种,返回一种可行方案枚举每个点,取一种与邻居都不同的颜色即可。

Pisasama的博客 229

LeetCode第 1042 题:不邻接植花(C++)

1042. 不邻接植花 - 力扣(LeetCode) 染色问题 class Solution { public: vector<int> gardenNoAdj(int N, vector<vector<int>>& paths) { vector<int> res(N, 0);//全部初始化为0 vector<vector<int>> G(N); for(const au

zj 327

leetcode 算法题1042 (简单276) 不邻接植花

leetcode 算法题1042 (简单276) 不邻接植花 题目介绍 有 N 个花园,按从 1 到 N 标记。在每个花园中,你打算种下四种花之一。 paths[i] = [x, y] 描述了花园 x 到花园 y 的双向路径。 另外,没有花园有 3 条以上的路径可以进入或者离开。 你需要为每个花...

FYuu95100的博客 456

1042 不邻接植花

题目描述: 有 N 个花园,按从 1 到 N 标记。在每个花园中,你打算种下四种花之一。 paths[i] = [x, y] 描述了花园 x 到花园 y 的双向路径。 另外,没有花园有 3 条以上的路径可以进入或者离开。 你需要为每个花园选择一种花,使得通过路径相连的任何两个花园中的花的种类互不相同。 以数组形式返回选择的方案作为答案 answer,其中 answer[i] 为在第 (i+1) 个花园中种植的花的种类。花的种类用 1, 2, 3, 4 表示。保证存在答案。 示例 1: 输入:N = 3,

weixin_44171872的博客 187

leetcode1042. 不邻接植花

有 N 个花园,按从 1 到 N 标记。在每个花园中,你打算种下四种花之一。 paths[i] = [x, y] 描述了花园 x 到花园 y 的双向路径。 另外,没有花园有 3 条以上的路径可以进入或者离开。 你需要为每个花园选择一种花,使得通过路径相连的任何两个花园中的花的种类互不相同。 以数组形式返回选择的方案作为答案 answer,其中 answer[i] 为在第 (i+1) 个花园中种植的...

yyf_blog 559

Leetcode.1042 不邻接植花

模拟

感觉画质不如...原神的博客 455

LeetCode 1042. 不邻接植花

LeetCode 1042. 不邻接植花 有 n 个花园,按从 1 到 n 标记。另有数组 paths ,其中 paths[i] = [xi, yi] 描述了花园 xi 到花园 yi 的双向路径。在每个花园中,你打算种下四种花之一。 另外,所有花园 最多 有 3 条路径可以进入或离开. 你需要为每个花园选择一种花,使得通过路径相连的任何两个花园中的花的种类互不相同。 以数组形式返回 任一 可行的方案作为答案 answer,其中 answer[i] 为在第 (i+1) 个花园中种植的花的种类。花的种类用

<font color="Pink">Tisfy的博客</font> 420

LeetCode1042. 不邻接植花

不邻接植花 题目描述 有 N 个花园,按从 1 到 N 标记。在每个花园中,你打算种下四种花之一。 paths[i] = [x, y] 描述了花园 x 到花园 y 的双向路径。 另外,没有花园有 3 条以上的路径可以进入或者离开。 你需要为每个花园选择一种花,使得通过路径相连的任何两个花园中的花的种类互不相同。 以数组形式返回选择的方案作为答案 answer,其中 answer[i] 为在第 (i+1) 个花园中种植的花的种类。花的种类用 1, 2, 3, 4 表示。保证存在答案。 解题思路 有n个花园,

visual568的博客 220

LeetCode 1042 不邻接植花

题目描述: 有 N 个花园,按从 1 到 N 标记。在每个花园中,你打算种下四种花之一。 paths[i] = [x, y] 描述了花园 x 到花园 y 的双向路径。 另外,没有花园有 3 条以上的路径可以进入或者离开。 你需要为每个花园选择一种花,使得通过路径相连的任何两个花园中的花的种类互不相同。 以数组形式返回选择的方案作为答案 answer,其中 answer[i] 为在第 (i+1) 个花园中种植的花的种类。花的种类用 1, 2, 3, 4 表示。保证存在答案。 思路: 首先遍历路径,找个每个花

peachzy的博客 584
上一篇: 997 找到小镇法官
下一篇: 232 用栈实现队列
UnendingGlory
博客等级 码龄9年 55粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值