|
1 | | -<p>An image is represented by an <code>m x n</code> integer grid <code>image</code> where <code>image[i][j]</code> represents the pixel value of the image.</p> |
| 1 | +<p>You are given an image represented by an <code>m x n</code> grid of integers <code>image</code>, where <code>image[i][j]</code> represents the pixel value of the image. You are also given three integers <code>sr</code>, <code>sc</code>, and <code>color</code>. Your task is to perform a <strong>flood fill</strong> on the image starting from the pixel <code>image[sr][sc]</code>.</p> |
2 | 2 |
|
3 | | -<p>You are also given three integers <code>sr</code>, <code>sc</code>, and <code>color</code>. You should perform a <strong>flood fill</strong> on the image starting from the pixel <code>image[sr][sc]</code>.</p> |
| 3 | +<p>To perform a <strong>flood fill</strong>:</p> |
4 | 4 |
|
5 | | -<p>To perform a <strong>flood fill</strong>, consider the starting pixel, plus any pixels connected <strong>4-directionally</strong> to the starting pixel of the same color as the starting pixel, plus any pixels connected <strong>4-directionally</strong> to those pixels (also with the same color), and so on. Replace the color of all of the aforementioned pixels with <code>color</code>.</p> |
| 5 | +<ol> |
| 6 | + <li>Begin with the starting pixel and change its color to <code>color</code>.</li> |
| 7 | + <li>Perform the same process for each pixel that is <strong>directly adjacent</strong> (pixels that share a side with the original pixel, either horizontally or vertically) and shares the <strong>same color</strong> as the starting pixel.</li> |
| 8 | + <li>Keep <strong>repeating</strong> this process by checking neighboring pixels of the <em>updated</em> pixels and modifying their color if it matches the original color of the starting pixel.</li> |
| 9 | + <li>The process <strong>stops</strong> when there are <strong>no more</strong> adjacent pixels of the original color to update.</li> |
| 10 | +</ol> |
6 | 11 |
|
7 | | -<p>Return <em>the modified image after performing the flood fill</em>.</p> |
| 12 | +<p>Return the <strong>modified</strong> image after performing the flood fill.</p> |
8 | 13 |
|
9 | 14 | <p> </p> |
10 | 15 | <p><strong class="example">Example 1:</strong></p> |
11 | | -<img alt="" src="https://assets.leetcode.com/uploads/2021/06/01/flood1-grid.jpg" style="width: 613px; height: 253px;" /> |
12 | | -<pre> |
13 | | -<strong>Input:</strong> image = [[1,1,1],[1,1,0],[1,0,1]], sr = 1, sc = 1, color = 2 |
14 | | -<strong>Output:</strong> [[2,2,2],[2,2,0],[2,0,1]] |
15 | | -<strong>Explanation:</strong> From the center of the image with position (sr, sc) = (1, 1) (i.e., the red pixel), all pixels connected by a path of the same color as the starting pixel (i.e., the blue pixels) are colored with the new color. |
16 | | -Note the bottom corner is not colored 2, because it is not 4-directionally connected to the starting pixel. |
17 | | -</pre> |
| 16 | + |
| 17 | +<div class="example-block"> |
| 18 | +<p><strong>Input:</strong> <span class="example-io">image = [[1,1,1],[1,1,0],[1,0,1]], sr = 1, sc = 1, color = 2</span></p> |
| 19 | + |
| 20 | +<p><strong>Output:</strong> <span class="example-io">[[2,2,2],[2,2,0],[2,0,1]]</span></p> |
| 21 | + |
| 22 | +<p><strong>Explanation:</strong></p> |
| 23 | + |
| 24 | +<p><img alt="" src="https://assets.leetcode.com/uploads/2021/06/01/flood1-grid.jpg" style="width: 613px; height: 253px;" /></p> |
| 25 | + |
| 26 | +<p>From the center of the image with position <code>(sr, sc) = (1, 1)</code> (i.e., the red pixel), all pixels connected by a path of the same color as the starting pixel (i.e., the blue pixels) are colored with the new color.</p> |
| 27 | + |
| 28 | +<p>Note the bottom corner is <strong>not</strong> colored 2, because it is not horizontally or vertically connected to the starting pixel.</p> |
| 29 | +</div> |
18 | 30 |
|
19 | 31 | <p><strong class="example">Example 2:</strong></p> |
20 | 32 |
|
21 | | -<pre> |
22 | | -<strong>Input:</strong> image = [[0,0,0],[0,0,0]], sr = 0, sc = 0, color = 0 |
23 | | -<strong>Output:</strong> [[0,0,0],[0,0,0]] |
24 | | -<strong>Explanation:</strong> The starting pixel is already colored 0, so no changes are made to the image. |
25 | | -</pre> |
| 33 | +<div class="example-block"> |
| 34 | +<p><strong>Input:</strong> <span class="example-io">image = [[0,0,0],[0,0,0]], sr = 0, sc = 0, color = 0</span></p> |
| 35 | + |
| 36 | +<p><strong>Output:</strong> <span class="example-io">[[0,0,0],[0,0,0]]</span></p> |
| 37 | + |
| 38 | +<p><strong>Explanation:</strong></p> |
| 39 | + |
| 40 | +<p>The starting pixel is already colored with 0, which is the same as the target color. Therefore, no changes are made to the image.</p> |
| 41 | +</div> |
26 | 42 |
|
27 | 43 | <p> </p> |
28 | 44 | <p><strong>Constraints:</strong></p> |
|
0 commit comments