UJS: Mock Interview, Graphs II
BITMAP 1
let bitmap = [
[0, 0, 0, 0, 0],
[1, 0, 0, 1, 0],
[2, 0, 0, 0, 0],
[1, 1, 1, 0, 2],
];
BITMAP 2
let bitmap = [
[0, 0, 0, 0, 0],
[1, 0, 0, 2, 0],
[2, 0, 0, 2, 0],
[1, 1, 1, 2, 2],
];
STARTING HERE
NOTE: Sources does NOT like const
and let
var bitmap = [
[0, 0, 0, 0, 0],
[1, 0, 0, 2, 0],
[2, 0, 0, 2, 0],
[1, 1, 1, 2, 2],
];
function mock_dfs(my_bitmap, colorCode, clickedCoord) {
var clickedColor = bitmap[clickedCoord[0]][clickedCoord[1]];
console.log(clickedColor);
return;
}
var answer = mock_dfs(bitmap, 4, [2, 3]);
SECOND ATTEMPT
THE GOOD: I did this WITHOUT looking at mock notes from yesterday
THE BAD: My if/else statements caused me the most pain because I’m dumb and impatient
THE UGLY: I left my debug statements in there so we can see my awful debugging
var bitmap = [
[0, 0, 0, 0, 0],
[1, 0, 0, 2, 0],
[2, 0, 0, 2, 0],
[1, 1, 1, 2, 2],
];
function mock_dfs(my_bitmap, colorCode, clickedCoord) {
var r = clickedCoord[0];
var c = clickedCoord[1];
var clickedColor = bitmap[r][c];
function helper(my_bitmap, colorCode, currClickedCoord) {
console.log("CURR CLICKED COORD", currClickedCoord);
var r_curr = currClickedCoord[0];
var c_curr = currClickedCoord[1];
while (my_bitmap[r_curr][c_curr] !== clickedColor) {
console.log("not!", my_bitmap[r_curr][c_curr]);
return;
}
my_bitmap[r_curr][c_curr] = colorCode;
if (r_curr > 0) helper(my_bitmap, colorCode, [r_curr - 1, c_curr]);
if (r_curr < my_bitmap.length - 1)
helper(my_bitmap, colorCode, [r_curr + 1, c_curr]);
if (c_curr > 0) helper(my_bitmap, colorCode, [r_curr, c_curr - 1]);
if (c_curr < my_bitmap[0].length - 1)
helper(my_bitmap, colorCode, [r_curr, c_curr + 1]);
}
helper(my_bitmap, colorCode, clickedCoord);
console.log(my_bitmap[3]);
return my_bitmap;
}
var answer = mock_dfs(bitmap, 4, [2, 3]);
FIRST ATTEMPT
var bitmap = [
[0, 0, 0, 0, 0],
[1, 0, 0, 2, 0],
[2, 0, 0, 2, 0],
[1, 1, 1, 2, 2],
];
function mock_dfs(my_bitmap, colorCode, clickedCoord) {
var r = clickedCoord[0];
var c = clickedCoord[1];
var clickedColor = bitmap[r][c];
function helper(my_bitmap, colorCode, currClickedCoord) {
var r_curr = currClickedCoord[0];
var c_curr = currClickedCoord[1];
while (my_bitmap[r_curr][c_curr] !== clickedColor) {
return;
}
my_bitmap[r_curr][c_curr] = colorCode;
if (r_curr >= 0 || r_curr <= len(my_bitmap) - 1)
helper(my_bitmap, colorCode, [r_curr - 1, c_curr]);
helper(my_bitmap, colorCode, [r_curr + 1, c_curr]);
if (c_curr >= 0 || c_curr <= len(my_bitmap) - 1)
helper(my_bitmap, colorCode, [r_curr, c_curr - 1]);
helper(my_bitmap, colorCode, [r_curr, c_curr + 1]);
}
return my_bitmap;
}
var answer = mock_dfs(bitmap, 4, [2, 3]);