当前位置: 首页 > news >正文

代码随想录第五十七天

99.  岛屿数量 深搜

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

代码随想录

#include <iostream>
#include <vector>
using namespace std;int dir[4][2] = { 0, 1, 1, 0, -1, 0, 0, -1 }; // 四个方向
void dfs(vector<vector<int>>& 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<vector<int>> grid(n, vector<int>(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 <iostream>
#include <vector>
#include <queue>
using namespace std;
struct node {int x,y;node(int x, int y) :x(x), y(y) {};
};
queue<node>que;
int n, m;
int res = 0;
void bfs(vector<vector<int>>&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<vector<int>>mp(n, vector<int>(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 <iostream>
#include <queue>
#include <vector>
using namespace std;
struct node {int x, y;node(int x, int y) :x(x), y(y) {};
};
int res = 0;
queue<node>que;
void bfs(vector<vector<int>>&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<vector<int>>mp(n, vector<int>(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;
}

相关文章:

  • Vue 常用组件间通信方式
  • 代码随想录算法训练营第 32 天 | LeetCode509斐波那契数列 LeetCode70爬楼梯 LeetCode749使用最小花费爬楼梯
  • 华为路由常见 LSA 类型的产生及作用域和字段详细解读
  • 杰理-1拖8 错误状态
  • 程序员找工作之操作系统面试题总结分析
  • 【Unity实战】给Unity的类添加新功能
  • Android笔试面试题AI答之线程Handler、Thread(3)
  • 基于 Kafka 的经验:AutoMQ 和 MinIO 如何解决成本和弹性挑战
  • 使用redis缓存文章浏览量
  • PHP中如何处理字符串
  • thinkphp8开发的广告联盟网站系统源码
  • C#:通用方法总结—第11集
  • SSM大学生就业咨询管理系统-计算机毕业设计源码79442
  • “网络身份证”来了,淘宝、微信、小红书等已上线试点版功能
  • TCP为什么需要四次挥手?
  • SegmentFault for Android 3.0 发布
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • Git的一些常用操作
  • Js基础知识(四) - js运行原理与机制
  • magento2项目上线注意事项
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • PHP面试之三:MySQL数据库
  • 从零开始的无人驾驶 1
  • 开源SQL-on-Hadoop系统一览
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 普通函数和构造函数的区别
  • 七牛云假注销小指南
  • 如何设计一个微型分布式架构?
  • 如何用vue打造一个移动端音乐播放器
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • - 转 Ext2.0 form使用实例
  • zabbix3.2监控linux磁盘IO
  • #QT(TCP网络编程-服务端)
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • ${factoryList }后面有空格不影响
  • (¥1011)-(一千零一拾一元整)输出
  • (10)ATF MMU转换表
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (python)数据结构---字典
  • (差分)胡桃爱原石
  • (超详细)语音信号处理之特征提取
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (四)汇编语言——简单程序
  • (限时免费)震惊!流落人间的haproxy宝典被找到了!一切玄妙尽在此处!
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (转)C#调用WebService 基础
  • (转)一些感悟
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .Net Core 笔试1
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .NET WPF 抖动动画