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

【剑斩OFFER】算法的暴力美学——力扣 1020 题:飞地的数量

一、题目描述

二、算法原理

思路:使用 BFS 算法先处理边界 1 ,再使用 BFS 统计陆地,体现正难则反的思想;

例如:

1)创建一个二维数组来专门标记是否入过队列或者说遍历过;

2)使用 BFS 算法标记边界为 1 的情况;

3)此时整个只有中间被0围起来的1为陆地;

三、代码实现

class Solution { int dx[4] = {1,-1,0,0}; int dy[4] = {0,0,-1,1}; typedef pair<int,int> PII; int n,m; public: int numEnclaves(vector<vector<int>>& grid) { n = grid.size(); m = grid[0].size(); vector<vector<bool>> vis(grid.size(),vector<bool>(grid[0].size(),false));//标记遍历过的数组 for(int i = 0; i < m; i++)//处理边界1 { Bfs(0,i,grid,vis); Bfs(n - 1,i,grid,vis); } for(int i = 0; i < n; i++)//处理边界1 { Bfs(i,0,grid,vis); Bfs(i,m - 1,grid,vis); } int ret = 0; for(int i = 0; i < n; i++)//此时中间的 1 就是陆地 { for(int j = 0; j < m; j++) { if(vis[i][j] == false && grid[i][j]) { ret += Bfs(i,j,grid,vis); } } } return ret; } int Bfs(int i,int j,vector<vector<int>>& grid,vector<vector<bool>>& vis)//BFS 算法 { if(grid[i][j] != 1 || vis[i][j] != false) return 0; queue<PII> que; que.push({i,j}); vis[i][j] = true; int count = 1; while(que.size()) { auto [x,y] = que.front(); que.pop(); for(int v = 0; v < 4; v++) { int a = x + dx[v]; int b = y + dy[v]; if(a >= 0 && a < n && b >= 0 && b < m && vis[a][b] == false && grid[a][b] == 1) { vis[a][b] = true; que.push({a,b}); count++; } } } return count; } };
http://www.jsqmd.com/news/313902/

相关文章:

  • iPhone XR 设备介绍:6种颜色 + 官方参数速查 + 体验亮点 + 二手选购避坑清单
  • 智能体协作提升价值投资的供应链弹性评估
  • 计算line的单位向量
  • uWSGI 目录穿越(CVE-2018-7490)
  • Java大厂面试实录:谢飞机的音视频场景三连问(Spring Boot + Kafka + Redis + AI RAG)
  • 基于Python的历届奥运会数据可视化分析系统(源码+lw+部署文档+讲解等)
  • 基于Python的膳食健康系统(源码+lw+部署文档+讲解等)
  • Agent Skills实战:将AI助手打造成Vercel资深工程师的全栈指南
  • 能源行业提示工程架构师薪资:某能源公司开出32k,还要五险一金!
  • 从单机到集群:医疗影像AI架构演进之路
  • mybatis连接查询和子查询方式实现员工部门多对一查询及一对多查询
  • 2026年1月最新榜单:厦门家装十大品牌,装修选对指南
  • Lucaone paper abstract
  • 2026最新厦门装修公司十大品牌推荐:靠谱选择实测解析
  • 美国本土一体化物流服务专家——IM GLOBAL LLC官方网址与联系方式
  • 2026年1月最新整理:厦门家装十大品牌,装修公司挑选攻略
  • 2026年1月厦门装修参考:最新家装十大品牌精选推荐
  • 为什么自己写的论文AIGC率那么高?
  • 深度学习篇---Yolov8n网络结构
  • 深度学习篇---YOLOv8n网络参数详细解析
  • 救命神器8个AI论文写作软件,本科生轻松搞定毕业论文!
  • 0128充满[特殊字符]的一天
  • 厦门装修找哪家?2026年1月最新十大品牌全解析
  • 微信小程序开发的价格一览表!列出明细
  • AI写毕业论文工具评测:9款一键极速生成神器,轻松搞定超长篇幅论文!
  • 2026年停车场道闸厂家权威推荐榜单,基于技术实力的深度测评
  • 瑞克
  • 深圳地区的小程序开发公司有哪些?这里帮你总结测评
  • 微信小程序的搭建教程:用对工具平台,几天就能上线!
  • AI伦理设计的未来趋势:AI应用架构师必须关注的5个方向(预测)