[733] 图像渲染

42 阅读1分钟
/*
 * @lc app=leetcode.cn id=733 lang=javascript
 *
 * [733] 图像渲染
 */

// @lc code=start
/**
 * @param {number[][]} image
 * @param {number} sr
 * @param {number} sc
 * @param {number} color
 * @return {number[][]}
 */
var floodFill = function (image, sr, sc, color) {
  if (image[sr][sc] === color) {
    return image
  }
  const oldColor = image[sr][sc]
  function dfs(sr, sc) {
    if (//判断边界
      sr < 0 ||
      sc < 0 ||
      sr >= image.length ||
      sc >= image[0].length ||
      image[sr][sc] !== oldColor
    )
      return
      //将其新颜色和四周相同的颜色改为新的颜色
    image[sr][sc] = color
    dfs(sr - 1, sc)
    dfs(sr + 1, sc)
    dfs(sr, sc - 1)
    dfs(sr, sc + 1)
  }
  dfs(sr, sc)
  return image
}
// @lc code=end