asp.net网站开发文档,哈尔滨专业制作网站制作,python做音乐网站,宁波制作网页服务好题目
给你一个大小为 m x n 的整数矩阵 grid #xff0c;表示一个网格。另给你三个整数 row、col 和 color 。网格中的每个值表示该位置处的网格块的颜色。
两个网格块属于同一 连通分量 需满足下述全部条件#xff1a;
两个网格块颜色相同 在上、下、左、右任意一个方向上…题目
给你一个大小为 m x n 的整数矩阵 grid 表示一个网格。另给你三个整数 row、col 和 color 。网格中的每个值表示该位置处的网格块的颜色。
两个网格块属于同一 连通分量 需满足下述全部条件
两个网格块颜色相同 在上、下、左、右任意一个方向上相邻 连通分量的边界 是指连通分量中满足下述条件之一的所有网格块
在上、下、左、右任意一个方向上与不属于同一连通分量的网格块相邻 在网格的边界上第一行/列或最后一行/列 请你使用指定颜色 color 为所有包含网格块 grid[row][col] 的 连通分量的边界 进行着色并返回最终的网格 grid 。
示例 1
输入grid [[1,1],[1,2]], row 0, col 0, color 3 输出[[3,3],[3,2]] 示例 2
输入grid [[1,2,2],[2,3,2]], row 0, col 1, color 3 输出[[1,3,3],[2,3,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]]
提示
m grid.length n grid[i].length 1 m, n 50 1 grid[i][j], color 1000 0 row m 0 col n
来源力扣LeetCode 链接https://leetcode.cn/problems/coloring-a-border 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
解决方法 //一定要注意是边界fun colorBorder(grid: ArrayIntArray, row: Int, col: Int, color: Int): ArrayIntArray {//简单粗暴 直接按照思路走//题意有点难懂 边界 val dp Array(grid.size) {BooleanArray(grid[0].size) { false }}//注意这里需要对二维数组 进行深copyval copyOf grid.map { t - t.copyOf() }.toTypedArray()dfs(grid, grid[row][col], color, row, col, dp,copyOf)return grid}fun dfs(grid: ArrayIntArray, old: Int, new: Int, row: Int, col: Int, dp: ArrayBooleanArray, origin: ArrayIntArray) {if (row in grid.indices col in grid[0].indices origin[row][col] old !dp[row][col]) {dp[row][col] trueif (row 0 || row grid.size - 1 || col 0 || col grid[0].size - 1 || board(origin,row,col)) {grid[row][col] new}dfs(grid, old, new, row 1, col, dp,origin)dfs(grid, old, new, row, col 1, dp,origin)dfs(grid, old, new, row - 1, col, dp,origin)dfs(grid, old, new, row, col - 1, dp,origin)}}fun board(grid: ArrayIntArray, row: Int, col: Int) : Boolean{if (row in grid.indices col in grid[0].indices){if (grid[row 1][col] ! grid[row][col] ||grid[row - 1][col] ! grid[row][col] ||grid[row ][col 1] ! grid[row][col] ||grid[row ][col - 1] ! grid[row][col]){return true}}return false}总结
1.既生瑜 何生亮 最近在看三国 几年前我也看过几次 但是从来都是看不到多少章就不看了 现在有二周了 看了上半部分了 感觉有些书。不到一些年纪就是读不进去 而且有些精彩的部分 看不懂 但是也不影响看懂的部分的精彩 读取一遍能够全部吸收。我觉得至少我认识的人中没有人能做到 长篇小说就是需要耐心、不可急躁 年轻就是容易急躁 也不懂的欣赏一些作品 现在我学会去以欣赏的角度问自己 为什么三国可以成为经典一定有他精彩的地方 这个精彩的地方我不想别人告诉我 我想自己去看看