733, Flood Fill
====
DFS,
from each un-visited node/island problems
====
1. 題目給予一個vec<vec<int>>M
一個起始的座標
以及變更的新數值
2. 定義一個vec<vec<bool>>visited
DFS( M, visited, i, j, m, n, new )走過上下左右的同值/同於起始 的所有node
====
class Solution{
void DFS( vec<vec<int>>& matrix, vec<vec<bool>>&visited, int i, int j, int m, int n, int old, int new){
if( i<0 || j<0 || i>=m || j>=n || matrix(i,j)!=old || visited(i,j) ) return;
visited(i,j)= true;
matrix(i,j)= new;
DFS( matrix, visited, i-1, j, m, n, matrix(i,j), new)
DFS i+1
DFS j-1
DFS j+1
}
vec<vec<int>> FloodFill( vec<vec<int>>& matrix, int x, int y, int newColor ){
int m= matirx.size(), n= matrix[0].size()
vec<vec<bool>> visited= (m, false)
if matrix(x,y)!=newColor
DFS( matrix, visited, x, y, matrix(x,y), newColor)
return matrix
}
沒有留言:
張貼留言