代码随想录第五十七天
创始人
2024-11-11 07:41:20
0

99.  岛屿数量 深搜

注意深搜的两种写法,熟练掌握这两种写法 以及 知道区别在哪里,才算掌握的深搜

代码随想录

#include  #include  using namespace std;  int dir[4][2] = { 0, 1, 1, 0, -1, 0, 0, -1 }; // 四个方向 void dfs(vector>& grid, int x, int y) {     for (int i = 0; i < 4; i++) {         int nx = x + dir[i][0];         int ny = y + dir[i][1];         if (nx < 0 || nx >= grid.size() || ny < 0 || ny >= grid[0].size() || grid[nx][ny]==0) continue;         grid[nx][ny] =0;         dfs(grid,nx,ny);     } }  int main() {     int n, m;     cin >> n >> m;     vector> grid(n, vector(m, 0));     for (int i = 0; i < n; i++) {         for (int j = 0; j < m; j++) {             cin >> grid[i][j];         }     }     int result = 0;     for (int i = 0; i < n; i++) {         for (int j = 0; j < m; j++) {             if (grid[i][j] == 1) {                 grid[i][j] =0;                 result++;                 dfs(grid, i, j);             }         }     }      cout << result << endl; }

99.  岛屿数量 广搜

注意广搜的两种写法,第一种写法为什么会超时, 如果自己做的录友,题目通过了,也要仔细看第一种写法的超时版本,弄清楚为什么会超时,因为你第一次 幸运 没那么想,第二次可就不一定了。

代码随想录

#include  #include  #include  using namespace std; struct node { 	int x,y; 	node(int x, int y) :x(x), y(y) {}; }; queueque; int n, m; int res = 0; void bfs(vector>&mp,int x,int y) { 	que.push(node(x, y)); 	int dx[] = { 0,0,-1,1 }; 	int dy[] = { 1,-1,0,0 }; 	while (!que.empty()) { 		node cur = que.front(); 		que.pop(); 		for (int i = 0; i < 4; i++) { 			int xx = cur.x + dx[i]; 			int yy = cur.y + dy[i]; 			if (xx<0 || xx>=mp.size() || yy<0 || yy>=mp[0].size() || mp[xx][yy] == 0)continue; 			mp[xx][yy] = 0; 			que.push(node(xx, yy)); 		} 	} } void solve() { 	cin >> n >> m;  	//建图 	vector>mp(n, vector(m, 0)); 	for (int i = 0; i < n; i++) { 		for (int j = 0; j < m; j++) { 			cin >> mp[i][j]; 		} 	}  	for (int i = 0; i < n; i++) { 		for (int j = 0; j < m; j++) { 			if (mp[i][j] == 1) { 				mp[i][j] = 0; 				bfs(mp, i, j); 				res++; 			} 		} 	} 	cout << res << endl; } int main() { 	solve(); 	return 0; }

100.  岛屿的最大面积

本题就是基础题了,做过上面的题目,本题很快。

代码随想录

#include  #include  #include  using namespace std; struct node { 	int x, y; 	node(int x, int y) :x(x), y(y) {}; }; int res = 0; queueque; void bfs(vector>&mp, int x, int y) { 	int total = 1; 	que.push(node(x, y)); 	int dx[] = { 0,0,1,-1 }; 	int dy[] = { -1,1,0,0 }; 	while (!que.empty()) { 		node cur = que.front(); 		que.pop(); 		for (int i = 0; i < 4; i++) { 			int xx = cur.x + dx[i]; 			int yy = cur.y + dy[i]; 			if (xx < 0 || xx >= mp.size() || yy < 0 || yy >= mp[0].size() || mp[xx][yy] == 0)continue; 			mp[xx][yy] = 0; 			total++; 			que.push(node(xx, yy)); 		} 	} 	res = max(res, total); } void solve() { 	int n, m; 	cin >> n >> m; 	vector>mp(n, vector(m, 0)); 	for (int i = 0; i < n; i++) { 		for (int j = 0; j < m; j++) { 			cin >> mp[i][j]; 		} 	} 	for (int i = 0; i < n; i++) { 		for (int j = 0; j < m; j++) { 			if (mp[i][j] == 1) { 				mp[i][j] = 0; 				bfs(mp, i, j); 			} 		} 	} 	cout << res << endl; } int main() { 	solve(); 	return 0; } 

相关内容

热门资讯

一分钟了解“金花链接房卡找谁买... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来享受...
华为买谷歌安卓系统,探索自主创... 你知道吗?最近有个大新闻在科技圈里炸开了锅,那就是华为竟然出手购买了谷歌的安卓系统!这可不是一个简单...
实测分享”海洋世界有挂吗“卡农... 实测分享”海洋世界有挂吗“卡农大厅房间卡怎么购买游戏中心打开微信,添加客服【113857776】,进...
秒懂教程!玩拼三张房卡从哪里买... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:71319951许多玩家在游戏中会购买房卡来享...
正版授权“玩链接牛牛金花房卡是... 新天道是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来享...
推荐一款!金花房卡专卖店新西游... 您好!微信新西游/飞鹰互娱大厅链接获取房卡可以通过以下几种方式购买: 1.微信渠道:(新西游/飞鹰...
玩家须知”海洋世界怎么买房卡“... 来教大家如何使用怎么买房卡房卡充值 添加房卡批售商:微【113857775】复制到微信搜索、直接添加...
重大通报,金花微信链接市场价格... 海草众厅房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 3、根...
秒懂教程!怎么创建拼三张房间卡... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:66336574许多玩家在游戏中会购买房卡来享...
IA解析/金花房卡出售新奇玩乐... IA解析/金花房卡出售新奇玩乐/微信链接房卡购买渠道新奇玩乐是一款非常受欢迎的游戏,咨询房/卡添加微...
ia实测“金花房卡链接怎么购买... 新超圣牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房...
实测分享”赢家众娱房卡获取“拼... 实测分享”赢家众娱房卡获取“拼十房卡充值 微信牛牛房卡客服微信号微信游戏中心打开微信,添加客服【11...
ia攻略/斗牛房间怎么创建的生... 生肖系列/新大圣是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:33...
秒懂教程!微信牛牛房卡怎样开,... 斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:56001354许多玩家在游戏中会购买房卡来享受...
科技实测!牛牛房卡出售旺旺大厅... 您好!微信旺旺大厅大厅链接获取房卡可以通过以下几种方式购买: 1.微信渠道:(旺旺大厅)大厅介绍:...
玩家攻略”赢家众娱是如何购买的... 玩家攻略”赢家众娱是如何购买的“详细房卡使用教程 微信牛牛房卡客服微信号微信游戏中心打开微信,添加客...
一分钟推荐“微信怎样开炸金花房... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享受...
推荐一款!牛牛房卡出售江山大厅... 今 日消息,江山大厅房卡添加微信33549083 苹果今日发布了 iOS 16.1 正式版更新,简单...
正规平台有哪些,游戏推荐斗牛房... 神盾大厅/新天道房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 ...
玩家须知”海豚大厅如何购买房卡... 玩家须知”海豚大厅如何购买房卡“拼三张房卡充值 微信牛牛房卡客服微信号微信游戏中心打开微信,添加客服...