生活随笔
收集整理的這篇文章主要介紹了
颜色填充.
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
面試題 08.10. 顏色填充
先找到初始坐標點,再進行深搜染色,如果超界或是與原來的顏色不一樣則換方向繼續
class Solution {
public:const int dx
[4] = {1, 0, 0, -1};const int dy
[4] = {0, 1, -1, 0};void dfs(vector
<vector
<int>>& image
, int x
, int y
, int color
, int newColor
) {if (image
[x
][y
] == color
) {image
[x
][y
] = newColor
;for (int i
= 0; i
< 4; i
++) {int mx
= x
+ dx
[i
], my
= y
+ dy
[i
];if (mx
>= 0 && mx
< image
.size() && my
>= 0 && my
< image
[0].size()) {dfs(image
, mx
, my
, color
, newColor
);}}}}vector
<vector
<int>> floodFill(vector
<vector
<int>>& image
, int sr
, int sc
, int newColor
) {int currColor
= image
[sr
][sc
];if (currColor
!= newColor
) {dfs(image
, sr
, sc
, currColor
, newColor
);}return image
;}
};
總結
以上是生活随笔為你收集整理的颜色填充.的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。