8000 Added floodFill.js · jonasraoni/leetcode@f472af6 · GitHub
[go: up one dir, main page]

Skip to content

Commit f472af6

Browse files
committed
Added floodFill.js
1 parent 209f354 commit f472af6

File tree

3 files changed

+55
-1
lines changed

3 files changed

+55
-1
lines changed

easy/floodFill.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
//+ Jonas Raoni Soares Silva
2+
//@ http://raoni.org
3+
4+
/**
5+
* @param {number[][]} image
6+
* @param {number} sr
7+
* @param {number} sc
8+
* @param {number} color
9+
* @return {number[][]}
10+
*/
11+
var floodFill = function(image, sr, sc, color) {
12+
const target = image[sr][sc], stack = [[sr, sc]];
13+
if (target === color)
14+
return image;
15+
for (let r, c; ([r, c] = stack.pop() ?? [])[0] != null; image[r][c] = color)
16+
for (const i of [1, -1, 2, -2])
17+
if (image[r + i % 2]?.[c + ~i % 2] === target)
18+
stack.push([r + i % 2, c + ~i % 2]);
19+
return image;
20+
};

easy/floodFill.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# [733. Flood Fill](https://leetcode.com/problems/flood-fill)
2+
3+
An image is represented by an m x n integer grid image where image[i][j] represents the pixel value of the image.
4+
5+
You are also given three integers sr, sc, and color. You should perform a flood fill on the image starting from the pixel image[sr][sc].
6+
7+
To perform a flood fill, consider the starting pixel, plus any pixels connected 4-directionally to the starting pixel of the same color as the starting pixel, plus any pixels connected 4-directionally to those pixels (also with the same color), and so on. Replace the color of all of the aforementioned pixels with color.
8+
9+
Return the modified image after performing the flood fill.
10+
11+
12+
13+
Example 1:
14+
15+
16+
Input: image = [[1,1,1],[1,1,0],[1,0,1]], sr = 1, sc = 1, color = 2
17+
Output: [[2,2,2],[2,2,0],[2,0,1]]
18+
Explanation: 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.
19+
Note the bottom corner is not colored 2, because it is not 4-directionally connected to the starting pixel.
20+
Example 2:
21+
22+
Input: image = [[0,0,0],[0,0,0]], sr = 0, sc = 0, color = 0
23+
Output: [[0,0,0],[0,0,0]]
24+
Explanation: The starting pixel is already colored 0, so no changes are made to the image.
25+
26+
27+
Constraints:
28+
29+
m == image.length
30+
n == image[i].length
31+
1 <= m, n <= 50
32+
0 <= image[i][j], color < 216
33+
0 <= sr < m
34+
0 <= sc < n

easy/isIsomorphic.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ var isIsomorphic = function(s, t) {
1515
return true;
1616
};
1717

18-
var isIsomorphic3 = function(s, t) {
18+
var isIsomorphic2 = function(s, t) {
1919
const map = new Map(), used = new Set();
2020
for (let i = -1; ++i < s.length;) {
2121
const c = map.get(s[i]);

0 commit comments

Comments
 (0)
0