【深度优先搜索-中等】1034. 边界着色

leetcode:1034.边界着色 题目 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/coloring-a-border/ 给你一个大小为 m x n 的整数矩阵 grid ,表示一个网格。另给你三个整数 row、col 和 color 。网格中的每个值表示该位置处的网格块的颜色。 两个网格块属于同一连通分量需要满足下述全部条件: 两个网格块颜色相同 在上、下、左、右任意一个方向上相邻 连通分量的边界是指连通分量中满足下述条件之一的所有网格块: 在上、下、左、右四个方向上与不属 阅读详情

【题目】
在这里插入图片描述注意:这题是对联通分量的边界进行着色,笔者第一遍做的时候就是忽略了这一点

【代码】
在这里插入图片描述

class Solution:
    def colorBorder(self, grid: List[List[int]], row: int, col: int, color: int) -> List[List[int]]:
        origin=grid[row][col]
        if origin==color:return grid
        stack=[(row,col)]
        p=set()
        while stack:
            row,col=stack.pop()
            if 0<=row<len(grid) and 0<=col<len(grid[0]) and grid[row][col]==origin:
                p.add((row,col))
                for mx,my in [(row-1,col),(row+1,col),(row,col-1),(row,col+1)]:
                    if (mx,my) not in p:
                        stack.append((mx,my))
        for x,y in p:            
            for row,col in [(x-1,y),(x+1,y),(x,y+1),(x,y-1)]:
                if (0<=row<len(grid) and 0<=col<len(grid[0]) and grid[row][col]!=origin and (row,col) not in p) or not(0<=row<len(grid) and 0<=col<len(grid[0])):
                    grid[x][y]=color
        return grid

【方法2】dfs
在这里插入图片描述

class Solution:
    def colorBorder(self, grid: List[List[int]], row: int, col: int, color: int) -> List[List[int]]:
        origin=grid[row][col]
        if origin==color:return grid
        def dfs(row,col):
            if 0<=row<len(grid) and 0<=col<len(grid[0]) and grid[row][col]==origin:
                grid[row][col]=99999
                return {(row,col)}|dfs(row-1,col)|dfs(row+1,col)|dfs(row,col-1)|dfs(row,col+1)
            return set()
        p=dfs(row,col)
        for x,y in p:
            for row,col in [(x-1,y),(x+1,y),(x,y+1),(x,y-1)]:
                if (0<=row<len(grid) and 0<=col<len(grid[0]) and grid[row][col]!=origin and (row,col) not in p) or not(0<=row<len(grid) and 0<=col<len(grid[0])):
                    grid[x][y]=color
                elif (0<=row<len(grid) and 0<=col<len(grid[0]) and grid[row][col]==99999):
                    grid[row][col]=origin
        return grid
实战Nocobase插件开发:如何用yarn pm命令快速创建和测试API接口插件 本文详细介绍了如何使用Nocobase插件开发工具快速创建和测试API接口插件,涵盖从环境配置、插件骨架生成到数据模型定义和接口实现的完整流程。通过yarn pm命令简化开发步骤,帮助开发者高效构建支持CRUD的API插件,适用于低代码平台开发场景。 阅读详情

相关推荐

OpenFOAM-v2006重叠网格挖洞问题实战:如何手动修复overset代码中的边缘识别缺陷

本文深入探讨了OpenFOAM-v2006中重叠网格挖洞问题的实战解决方案,重点修复overset代码中的边缘识别缺陷。通过逆向工程解析挖洞决策机制,设计最小侵入式的函数override方案,并建立多级验证体系,有效解决了网格挖洞区域覆盖不全的问题,提升了计算流体动力学模拟的准确性和可靠性。

weixin_29216049的博客 433

【LeetCode练习】[中等]1034. 边框着色

【LeetCode练习】[中等]1034. 边框着色 1034. 边框着色 题目来源 算法思想:二维数组 题目: 思路: 首先寻找连通部分, 标记遍历过的格子; 在找连通部分中, 判断当前格子是否是边界, 如果是边界, 进行着色; 采用深度优先遍历方法 java代码 class Solution { private int num;//记录grid[r0][c0]的值 private int row;//行数 private int col;//列数 private boolean[][

qq_39457586的博客 309

微信小程序 | 小程序开发

事实上,目前小程序在我们生活中已经随处可见(特别是这次疫情的推动,不管是什么岗位、什么年龄阶段的人,到哪都需要打开健康码)WePY是由腾讯开源的,一款让小程序支持组件化开发的框架,通过预编译的手段让开发者可以选择自己喜欢的开发风格去开发小程序。Mpvue是一个使用Vue开发小程序的前端框架,也是 支持 微信小程序、百度智能小程序,头条小程序 和 支付宝小程序;微信小程序、支付宝小程序、淘宝小程序、抖音小程序、头条小程序、QQ小程序、美团小程序等。,其他平台的小程序往往是平台本身的一些公司或者顺手开发的。

CoderHing的博客~ 1万+

【LeetCode每日一题】【2021/12/7】1034. 边界着色

文章目录1034. 边界着色前言方法1:广度优先搜索方法2:深度优先搜索(非递归) 1034. 边界着色 给你一个大小为 m x n 的整数矩阵 grid ,表示一个网格。另给你三个整数 row、col 和 color 。网格中的每个值表示该位置处的网格块的颜色。 当两个网格块的颜色相同,而且在四个方向中任意一个方向上相邻时,它们属于同一 连通分量 。 连通分量的边界 是指连通分量中的所有与不在分量中的网格块相邻(四个方向上)的所有网格块,或者在网格的边界上(第一行/列或最后一行/列)的所有网格块。 请你

Wang_Xin_Ling的博客 822

SBM与超效率SBM模型实战:从原始面板数据到MATLAB高效实现

本文详细介绍了SBM模型与超效率SBM模型的核心原理,并提供了从原始面板数据预处理到MATLAB高效实现的完整实战指南。通过具体代码解析,帮助研究者掌握如何利用MATLAB进行数据标准化、模型构建、效率求解及结果可视化,从而精准评估决策单元的相对效率,尤其适用于在高效单元中进一步精细排名的场景。

weixin_29100399的博客 481

从零搭建:基于Matlab/Simulink与FlightGear的飞行器实时可视化仿真平台

本文详细介绍了如何从零搭建基于Matlab/Simulink与FlightGear的飞行器实时可视化仿真平台。通过环境准备、模型部署、接口配置及联合仿真等步骤,帮助用户快速掌握飞行器仿真的核心技术,实现高效的三维可视化与实时数据交互。

weixin_29100399的博客 517

LeetCode-1034边界着色问题

一,问题描述 给你一个大小为 m x n 的整数矩阵grid ,表示一个网格。另给你三个整数 row、col 和 color 。网格中的每个值表示该位置处的网格块的颜色。 当两个网格块的颜色相同,而且在四个方向中任意一个方向上相邻时,它们属于同一 连通分量 。 连通分量的边界 是指连通分量中的所有与不在分量中的网格块相邻(四个方向上)的所有网格块,或者在网格的边界上(第一行/列或最后一行/列)的所有网格块。 请你使用指定颜色 color 为所有包含网格块 grid[row][col]的 连通分量的边界 进行

写写平时的技术与感想 1976

物联网Node-Red开发教程-第6章 HTTP与Web服务

本章摘要(147字): 本章系统讲解了Node-RED中的HTTP节点应用,重点包括: 三大核心HTTP节点功能:http in(接收请求)、http response(返回响应)、http request(调用外部API) 详细演示了REST API开发流程,包括路径参数(req.params)处理和响应构造 提供了创建Hello World API、传感器数据接口等实用示例 涵盖HTTP方法特性、状态码设置及响应头配置等关键知识点 通过流程图和JSON配置直观展示节点连接方式,帮助快速掌握Web服务开发

shihui2003的博客 264

leetcode1034. 边界着色-medium

输入:grid = [[1,1,1],[1,1,1],[1,1,1]], row = 1, col = 1, color = 2。输入:grid = [[1,2,2],[2,3,2]], row = 0, col = 1, color = 3。输入:grid = [[1,1],[1,2]], row = 0, col = 0, color = 3。输出:[[2,2,2],[2,1,2],[2,2,2]]输出:[[1,3,3],[2,3,3]]输出:[[3,3],[3,2]]并返回最终的网格 grid。

weixin_37253733的博客 623

RT-Thread littefs控制GD32F4xx片内Flash

GD32F4xx RT-Thread下使用littefs 控制片内flash 调试记录

madao1234的博客 995

人工智能训练师三级补贴3120元申领全攻略|条件+流程+五省市对比

补贴是真的,但不是"白给"的。你需要满足社保、户籍、时间等条件,严格按照流程操作。记住四件事先确认自己是否满足条件,再报名——别考完了才发现领不到紧缺工种补贴更高——确认你所在城市是否在紧缺目录中证书下发后12个月内申请——设个日历提醒材料准备齐全再提交——避免来回折腾如果你正在考虑考人工智能训练师三级证书,想要从报名到备考到拿证到申领补贴的完整一站式指南,欢迎查看我的付费专栏:📖《人工智能训练师三级·从零到拿证完全指南》80篇系统化内容,覆盖报名、备考、冲刺、拿证全流程。

白话机器学习 1536

LeetCode——1034. 边界着色(Coloring A Border)[中等]——分析及代码(C++)

LeetCode——1034. 边界着色[Coloring A Border][中等]——分析及代码[C++]一、题目二、分析及代码1. 深度优先搜索(1)思路(2)代码(3)结果三、其他 一、题目 给你一个大小为 m x n 的整数矩阵 grid ,表示一个网格。另给你三个整数 row、col 和 color 。网格中的每个值表示该位置处的网格块的颜色。 两个网格块属于同一 连通分量 需满足下述全部条件: 两个网格块颜色相同 在上、下、左、右任意一个方向上相邻 连通分量的边界 是指连通分量中

江南土豆的博客 577

图文:银行核心账务处理逻辑(白话篇)

银行账务系统分为对内账(记录银行自身资产负债)和对外账(处理客户交易),通过特定编码规则的账号体系进行管理。采用T型账户结构和凭证制度确保每笔交易可追溯,通过明细核算与综合核算双线并行、每日轧账核对(科目日结单、总账、日计表)实现账务精准平衡。从业务触发到最终账平的全流程体现了银行账务"分层记录、双向核对、闭环校验"的核心原则,保障资金流动的透明性与安全性。

银行信息系统应用架构详解 543

LeetCode 1034 边界着色

给你一个大小为 m x n 的整数矩阵 grid ,表示一个网格。另给你三个整数row、col 和 color 。网格中的每个值表示该位置处的网格块的颜色。 当两个网格块的颜色相同,而且在四个方向中任意一个方向上相邻时,它们属于同一 连通分量 。 连通分量的边界 是指连通分量中的所有与不在分量中的网格块相邻(四个方向上)的所有网格块,或者在网格的边界上(第一行/列或最后一行/列)的所有网格块。...

fengwuya的博客 335

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

1034. 边界着色

这题不是太容易理解,官方的代码,写的也不太行,不是太容易理解。

long_steve的博客 244

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

LeetCode 1034:边界着色

问题描述: 给你一个大小为m x n的整数矩阵grid,表示一个网格。另给你三个整数row、col和color。网格中的每个值表示该位置处的网格块的颜色。 将给定单元格[row,col]的联通区域的边界着色成color; 思路:DFS从给定单元格开始遍历,记录visited 从上下左右四个方向开始扩展,如果出界或者值不是原有颜色则是边界存到boarders中; 只要任意方向满足条件那么当前单元格就是边界,存起来; 最后统一处理进行着色; 代码: class Solutio...

li4692625的博客 770

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Leecode 1034. 边界着色 DFS/BFS

原题链接:Leecode 1034. 边界着色 这题题目不太好理解 DFS class Solution { public: int x[4]={-1,1,0,0}; int y[4]={0,0,-1,1}; vector<vector<int>> vis; bool dfs(vector<vector<int>>& grid,int i,int j,int col,int color) {

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

【并查集】leetcode1034.边界着色

题目: 给你一个大小为 m x n 的整数矩阵 grid ,表示一个网格。另给你三个整数 row、col 和 color 。网格中的每个值表示该位置处的网格块的颜色。 当两个网格块的颜色相同,而且在四个方向中任意一个方向上相邻时,它们属于同一 连通分量 。 连通分量的边界 是指连通分量中的所有与不在分量中的网格块相邻(四个方向上)的所有网格块,或者在网格的边界上(第一行/列或最后一行/列)的所有网格块。 请你使用指定颜色 color 为所有包含网格块 grid[row][col] 的 连通分量的边界 进

jqq125的博客 534

1034.边界着色

题目描述 给你一个大小为 m x n 的整数矩阵 grid ,表示一个网格。另给你三个整数 row、col 和 color 。网格中的每个值表示该位置处的网格块的颜色。 当两个网格块的颜色相同,而且在四个方向中任意一个方向上相邻时,它们属于同一 连通分量 。 连通分量的边界 是指连通分量中的所有与不在分量中的网格块相邻(四个方向上)的所有网格块,或者在网格的边界上(第一行/列或最后一行/列)的所有网格块。 请你使用指定颜色 color 为所有包含网格块 grid[row][col] 的 连通分量的边

ososod的博客 197

Leetcode 1034:边框着色

题目描述 给出一个二维整数网格grid,网格中的每个值表示该位置处的网格块的颜色。 只有当两个网格块的颜色相同,而且在四个方向中任意一个方向上相邻时,它们属于同一连通分量。 连通分量的边界是指连通分量中的所有与不在分量中的正方形相邻(四个方向上)的所有正方形,或者在网格的边界上(第一行/列或最后一行/列)的所有正方形。 给出位于(r0, c0)的网格块和颜色color,使用指定颜色...

weixin_35338624的博客 346

leetcode 1034. Coloring A Border 边界着色

Problem:深度优先搜索,先标记这个连通域的所有格子-1,状态数组的,然后重置状态数组,再次遍历这个连通域,若满足条件则标记color,x0||x=-1),结果数组ret需要复制最开始的grid。

邹九的个人博客 95

力扣题1034边界着色

给你一个大小为 m x n 的整数矩阵 grid ,表示一个网格。另给你三个整数row、col 和 color 。网格中的每个值表示该位置处的网格块的颜色。 当两个网格块的颜色相同,而且在四个方向中任意一个方向上相邻时,它们属于同一 连通分量 。 连通分量的边界 是指连通分量中的所有与不在分量中的网格块相邻(四个方向上)的所有网格块,或者在网格的边界上(第一行/列或最后一行/列)的所有网格块。 请你使用指定颜色color 为所有包含网格块grid[row][col] 的 连通分量的边界 进行着色...

xxyneymar的博客 236

网格图--Day03--网格图DFS--2658. 网格图中鱼的最大数目,1034. 边界着色,1020. 飞地的数量

网格图–Day03–网格图DFS–2658. 网格图中鱼的最大数目,1034. 边界着色,1020. 飞地的数量 今天要训练的题目类型是:【网格图DFS】,题单来自@灵艾山茶府。 适用于需要计算连通块个数、大小的题目。 部分题目做法不止一种,也可以用 BFS 或并查集解决。 DFS函数中的三步曲:判断,处理,继续DFS。 判断:是否越界,是否是需要DFS的格子 处理:根据题意处理格子 继续DFS:DFS四个方向,有时候可能需要收集返回值。

m0_60740070的博客 598

leetcode 1034. 边界着色 python

题目描述: 题解:回溯 思路:先将[row,col]的所有连通位置都染色为color,然后再将其中不为边界的部分,重新赋值为原来grid[row][col]的值。 1.oricolor记录原始[row,col]位置的颜色,directions记录上下左右的移动方式,visited记录哪些位置被染色。 2.dfs函数输入为posx,posy,visited,oricolor,如果[posx,posy]位置合法并且grid[posx][posy]=oricolor,则将grid[posx][..

ganggang的博客 234

力扣1034.边界着色 题解

跳转到 边界着色https://leetcode-cn.com/problems/coloring-a-border/ 题目 给你一个大小为 m x n 的整数矩阵 grid ,表示一个网格。另给你三个整数row、col 和 color 。网格中的每个值表示该位置处的网格块的颜色。 两个网格块属于同一 连通分量 需满足下述全部条件: 两个网格块颜色相同 在上、下、左、右任意一个方向上相邻 ...

weixin_51612593的博客 379

1034. 边界着色-深度优先遍历

输入:grid = [[1,1,1],[1,1,1],[1,1,1]], row = 1, col = 1, color = 2。输入:grid = [[1,2,2],[2,3,2]], row = 0, col = 1, color = 3。输入:grid = [[1,1],[1,2]], row = 0, col = 0, color = 3。输出:[[2,2,2],[2,1,2],[2,2,2]]输出:[[1,3,3],[2,3,3]]输出:[[3,3],[3,2]]

weixin_43327597的博客 296
上一篇: 【深度优先搜索-简单】463. 岛屿的周长
下一篇: 【深度优先搜索-中等】419. 甲板上的战舰
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值