当前位置:   article > 正文

每日一题 —— 图像渲染

每日一题 —— 图像渲染

1.链接

733. 图像渲染 - 力扣(LeetCode)

2.描述

3.思路

这个题目作为dfs到FloodFill的过渡,FloodFill算法解决的问题就是在找相同的区域块,在本题中,题目给出了具体的位置,而且只有一片区域,那么只需要对这个区域做一个dfs即可,和之前的二维dfs思路和代码设计过程是一样的

4.参考代码

  1. class Solution
  2. {
  3. int newcolor;
  4. int oldcolor;
  5. int m,n;
  6. public:
  7. vector<vector<int>> floodFill(vector<vector<int>>& image, int sr, int sc, int color)
  8. {
  9. if(image[sr][sc] == color)
  10. return image;
  11. newcolor = color;
  12. oldcolor = image[sr][sc];
  13. m = image.size();
  14. n = image[0].size();
  15. dfs(image,sr,sc);
  16. return image;
  17. }
  18. int dx[4] = {-1,1,0,0};
  19. int dy[4] = {0,0,-1,1};
  20. void dfs(vector<vector<int>>& image,int row,int col)
  21. {
  22. image[row][col] = newcolor;
  23. for(int k = 0;k<4;k++)
  24. {
  25. int x = row + dx[k];
  26. int y = col + dy[k];
  27. if(x>=0 && x<m && y>=0 && y<n && image[x][y] == oldcolor)
  28. {
  29. dfs(image,x,y);
  30. }
  31. }
  32. }
  33. };

总结

简单总结一下,用C++写的,这题算是dfs过渡到 FloodFill算法的一题

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/526841
推荐阅读
相关标签
  

闽ICP备14008679号