MCPcopy Create free account
hub / github.com/careercup/CtCI-6th-Edition-JavaScript / paintFill

Function paintFill

chapter08/8.10 - Paint Fill/paintFill.js:8–46  ·  view source on GitHub ↗
(screen, point, color)

Source from the content-addressed store, hash-verified

6};
7
8var paintFill = function(screen, point, color) {
9 var [row, col] = point;
10 var currColor = screen[row][col];
11 if (withinBounds(point, screen) && screen[row][col] !== color) {
12 screen[row][col] = color;
13
14 if (withinBounds([row + 1, col], screen) && screen[row + 1][col] === currColor) {
15 paintFill(screen, [row + 1, col], color);
16 }
17
18 if (withinBounds([row + 1, col + 1], screen) && screen[row + 1][col + 1] === currColor) {
19 paintFill(screen, [row + 1, col + 1], color);
20 }
21
22 if (withinBounds([row + 1, col - 1], screen) && screen[row + 1][col - 1] === currColor) {
23 paintFill(screen, [row + 1, col - 1], color);
24 }
25
26 if (withinBounds([row, col + 1], screen) && screen[row][col + 1] === currColor) {
27 paintFill(screen, [row, col + 1], color);
28 }
29
30 if (withinBounds([row, col - 1], screen) && screen[row][col - 1] === currColor) {
31 paintFill(screen, [row, col - 1], color);
32 }
33
34 if (withinBounds([row - 1, col], screen) && screen[row - 1][col] === currColor) {
35 paintFill(screen, [row - 1, col], color);
36 }
37
38 if (withinBounds([row - 1, col + 1], screen) && screen[row - 1][col + 1] === currColor) {
39 paintFill(screen, [row - 1, col + 1], color);
40 }
41
42 if (withinBounds([row - 1, col - 1], screen) && screen[row - 1][col - 1] === currColor) {
43 paintFill(screen, [row - 1, col - 1], color);
44 }
45 }
46};
47
48/* TEST */
49

Callers 1

paintFill.jsFile · 0.85

Calls 1

withinBoundsFunction · 0.85

Tested by

no test coverage detected