733 Flood Fill
阿新 • • 發佈:2018-11-22
python:
class Solution: def floodFill(self, image, sr, sc, newColor): """ :type image: List[List[int]] :type sr: int :type sc: int :type newColor: int :rtype: List[List[int]] """ rows, columns = len(image), len(image[0]) same = image[sr][sc] if newColor is same: return image def Fill(row, column): if 0<=row<rows and 0<=column<columns and image[row][column] == same: image[row][column] = newColor else: return Fill(row+1, column) Fill(row-1, column) Fill(row, column+1) Fill(row, column-1) Fill(sr, sc) return image
c++:
class Solution { private: int m_num; int m_newColor; int rows; int cols; public: vector<vector<int>> floodFill(vector<vector<int>>& image, int sr, int sc, int newColor) { m_num = image[sr][sc]; if (m_num == newColor) return image; rows = image.size(); cols = image[0].size(); m_newColor = newColor; fill(sr, sc, image); return image; } void fill(int row, int col, vector<vector<int>>& image){ if( row<0 || row>=rows || col<0 || col>=cols || image[row][col]!=m_num) return; image[row][col] = m_newColor; fill(row+1, col, image); fill(row-1, col, image); fill(row, col+1, image); fill(row, col-1, image); } };