当前位置: 首页 > news >正文

lc1034-边界着色

题目描述

  • 有一个二维地图,值代表颜色。
  • 给定一个点的坐标和一个备用的颜色
  • 这个点周围与它颜色一样的部分认为是一个整体
  • 给这块区域的最外层刷上备用颜色

示例

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

题解

  • 思路:模拟、flood fill
    1. 使用 flood fill 找到这个颜色块
    2. 找的时候顺便标记边界
    3. 给边界上色
var (n, m inttarget intdx, dy = [4]int{-1, 0, 1, 0}, [4]int{0, 1, 0, -1}
)func colorBorder(grid [][]int, row int, col int, color int) [][]int {n, m = len(grid), len(grid[0])target = grid[row][col]st := make([][]int, n) // 0: default, 1: block, 2: borderfor i := 0; i < n; i ++ { st[i] = make([]int, m) }dfs(row, col, grid, st)for i := 0; i < n; i ++ {for j := 0; j < m; j ++ {if st[i][j] == 2 {grid[i][j] = color}}}return grid
}func dfs(x, y int, grid, st [][]int) {is_border := falsefor d := 0; d < 4; d ++ {r, c := x + dx[d], y + dy[d]if 0 <= r && r < n && 0 <= c && c < m && grid[r][c] == target {if st[r][c] == 0 {st[r][c] = 1dfs(r, c, grid, st)}} else {is_border = true}}if is_border { st[x][y] = 2 }
}
http://www.hskmm.com/?act=detail&tid=15172

相关文章:

  • 【汽车电子】汽车功能安全标准 ISO 26262
  • ISO 26262的不同安全等级:ASIL-D ASIL-C ASIL-B ASIL-A
  • C#学习1
  • 02020405 EF Core基础05-EF Core反向工程、EF Core和ADO.NET Core的联系、EF Core无法做到的事情
  • 02020406 EF Core基础06-EF Core生成的SQL
  • Gemini-2.5-Flash-Image-Preview 与 GPT-4o 图像生成能力技术差异解析​ - 教程
  • 新学期每日总结(第2天)
  • 在CodeBolcks下wxSmith的C++编程教程——使用菜单和组件
  • 单调队列
  • 软工第一次编程
  • 第二次软工作业
  • 9.23总结
  • 日志|力扣|不同路径|最小路径和|动态规划|Javase|IO|File|Javaweb
  • 如何建立 5 μm 精度的视觉检测?不仅仅是相机的事
  • 函数 cmd_info_change_cur_model_group
  • 线程--相关概念、两种创建线程的方式
  • 恢复某个数据文件不适当,导致DataGuard无法open数据库
  • Nginx 部署及配置
  • vite静态资源处理
  • 洛谷B4040 [GESP202409 四级] 黑白方块 题解
  • SerpApi:一站式搜索引擎数据抓取API完全指南
  • 补whk时的鲜花(持续更新)
  • css 使用记录 随笔
  • newDay02
  • 【OI 档案-2025】CSP 赛前集训记(初赛后+复赛)
  • Git 从零到一:以 Gitee 为例的实战与可视化指南
  • 代码随想录算法训练营第七天 |第454题.四数相加II、383. 赎金信、第15题. 三数之和
  • day06
  • 前沿速览:TrafficVLM、DeepSeek-Terminus、Qwen3-Omni、蚂蚁百灵、Wan2.2-Animate、Qianfan-VL
  • 代码随想录算法训练营第七天 | leetcode 454 383 15 18