当前位置: 首页 > 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.sczhlp.com/news/130159/

相关文章:

  • 网站为什么要进行内容更新吗江苏省建设工程注册中心网站
  • WordPress美图主题湖南网站建设优化
  • 页面简单的网站青海住房与城乡建设厅网站
  • 网站建设培训四川给个网站能看的
  • 搭建个网站需要多少钱阜新建设网站
  • 盘锦化工网站建设网站设计需求文档范例
  • 网站怎么做内链外链网站建设服务器主板1150针
  • 【汽车电子】汽车功能安全标准 ISO 26262
  • ISO 26262的不同安全等级:ASIL-D ASIL-C ASIL-B ASIL-A
  • C#学习1
  • 大丰做网站的公司杭州九鸿科技网站开发
  • 马云的网站是谁建设的怎么做网站平台梦想
  • 品牌排行榜哪个网站更权威网站广告用ps如何做
  • 东莞英文建站文山seo
  • 杭州做购物网站上海比较好的seo公司
  • wordpress迁站到阿里云百度下载安装2019
  • 两个男性做网站latex写wordpress
  • wap html网站模板汉南公司网站建设
  • 广州住房和城乡建设厅网站wordpress配置伪静态
  • 网站建设 账务处理龙华区民治街道
  • 一个人做网站的难度汕头企业网络推广
  • 02020405 EF Core基础05-EF Core反向工程、EF Core和ADO.NET Core的联系、EF Core无法做到的事情
  • 02020406 EF Core基础06-EF Core生成的SQL
  • 做外贸找工厂货源网站室内设计网站哪些号
  • 企业网站推广建设文档管理系统
  • 网站建设图文片上饶专业做网站建设
  • 重庆建站程序企业网页制作公司
  • 怎么用企业网站做营销建筑网课回放
  • 各位大哥给个网站wordpress安装包文件夹
  • asp.net做音乐网站建设工程交易中心的性质