生活随笔
收集整理的這篇文章主要介紹了
颜色填充.
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
面試題 08.10. 顏色填充
先找到初始坐標(biāo)點(diǎn),再進(jìn)行深搜染色,如果超界或是與原來(lái)的顏色不一樣則換方向繼續(xù)
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
;}
};
總結(jié)
以上是生活随笔為你收集整理的颜色填充.的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。