题目有点难理解,其实很简单,就是类似画图时使用的油漆桶工具。选取一个点,同时选到所有与该点数值相同的相邻的点,并继续选取,全部修改为新的数值。
以这张图为例,如果选到坐标为(1,1)的点,就会把蓝色区域的所有点都选中,一起改成新的数值。
- DFS
#include<iostream>
#include<vector>
using namespace std;
void dfs(vector<vector<int>>& image,int sr,int sc, int newColor, int oldColor)
{
if(sr>=image.size() || sr<0 || sc<0 || sc>=image[0].size() || image[sr][sc]!=oldColor)