摄影师作品网站,益阳一站式网站建设公司,网页设计如何收费,网站开发工资怎么样文章目录 一、题目二、C# 题解 一、题目 编写函数#xff0c;实现许多图片编辑软件都支持的「颜色填充」功能。 待填充的图像用二维数组 image 表示#xff0c;元素为初始颜色值。初始坐标点的行坐标为 sr 列坐标为 sc。需要填充的新颜色为 newColor。 「周围区域」是指颜色相… 文章目录 一、题目二、C# 题解 一、题目 编写函数实现许多图片编辑软件都支持的「颜色填充」功能。 待填充的图像用二维数组 image 表示元素为初始颜色值。初始坐标点的行坐标为 sr 列坐标为 sc。需要填充的新颜色为 newColor。 「周围区域」是指颜色相同且在上、下、左、右四个方向上存在相连情况的若干元素。 请用新颜色填充初始坐标点的周围区域并返回填充后的图像。
示例 输入 image [[1,1,1],[1,1,0],[1,0,1]] sr 1, sc 1, newColor 2 输出 [[2,2,2],[2,2,0],[2,0,1]] 解释: 初始坐标点位于图像的正中间坐标 (sr,sc)(1,1) 。 初始坐标点周围区域上所有符合条件的像素点的颜色都被更改成 2 。 注意右下角的像素没有更改为 2 因为它不属于初始坐标点的周围区域。 提示
image 和 image[0] 的长度均在范围 [1, 50] 内。初始坐标点 (sr,sc) 满足 0 sr image.length 和 0 sc image[0].length。image[i][j] 和 newColor 表示的颜色值在范围 [0, 65535] 内。 点击此处跳转题目。
二、C# 题解 也是比较简单的题目直接上代码了
public class Solution {public int[][] FloodFill(int[][] image, int sr, int sc, int newColor) {if (image[sr][sc] newColor) return image;Partition(image, sr, sc, image[sr][sc], newColor);return image;}public void Partition(int[][] image, int i, int j, int oldColor, int newColor) {if (i 0 || j 0 || i image.Length || j image[0].Length) return;if (image[i][j] ! oldColor) return;image[i][j] newColor;Partition(image, i, j 1, oldColor, newColor);Partition(image, i, j - 1, oldColor, newColor);Partition(image, i 1, j, oldColor, newColor);Partition(image, i - 1, j, oldColor, newColor);}
}时间140 ms击败 66.67% 使用 C# 的用户内存43.64 MB击败 100.00% 使用 C# 的用户