文章

19

粉丝

0

获赞

159

访问

3.9k

头像
石油储藏 题解:参考leetcode岛屿数量DFS
P1564 中国科学院大学2021年机试题
发布于2026年3月22日 20:48
阅读数 55

#include <iostream>
#include <vector>
#include <string>

using namespace std;
int dx[8] = {-1, -1, -1, 0, 0, 1, 1, 1}; 
int dy[8] = {-1, 0, 1, -1, 1, -1, 0, 1};
void dfs(vector<string> &maze,vector<vector<bool>> &visit,int x,int y)
{
	int m=maze.size();
	int n=maze[0].size();
	for(int i=0;i<8;i++)
	{
		int nx=x+dx[i];
		int ny=y+dy[i];
		if(nx>=0&&nx<m&&ny>=0&&ny<n&&maze[nx][ny]=='@'&&!visit[nx][ny])
		{
			visit[nx][ny]=true;
			dfs(maze,visit,nx,ny);
		}
	}
}
int oils(vector<string> &maze)
{
	int m=maze.size();
	int n=maze[0].size();
	int result=0;
	vector<vector<bool>> visit(m,vector<bool>(n,false));
	for(int i=0;i<m;i++)
	{
		for(int j=0;j<n;j++)
		{
			if(maze[i][j]=='@'&&!visit[i][j])
			{
				result++;
				visit[i][j]=true;
				dfs(maze,visit,i,j);
			}
		}
	}
	return result;
}
int main()
{
	...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发