news 2026/5/16 0:16:33

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【剑斩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; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 2:28:18

从单机到集群:医疗影像AI架构演进之路

从单机到集群&#xff1a;医疗影像AI架构演进之路 一、引言 (Introduction) 钩子 (The Hook) 想象一下&#xff0c;在一家繁忙的大型医院里&#xff0c;每天都有大量的患者前来进行各类医疗影像检查&#xff0c;如X光、CT、MRI等。医生们急需借助医疗影像AI技术快速且准确地…

作者头像 李华
网站建设 2026/5/9 2:28:18

基于JavaWEB+SpringBoot的大学生心理互助社区(源码+lw+部署文档+讲解等)

课题介绍 本课题旨在设计实现基于JavaWEBSpringBoot的大学生心理互助社区&#xff0c;聚焦大学生心理疏导、情感交流、知识普及及专业帮扶核心需求&#xff0c;破解校园心理服务覆盖不足、学生倾诉顾虑多、互助渠道有限等痛点&#xff0c;构建安全、匿名、高效的校园心理互助平…

作者头像 李华
网站建设 2026/5/9 2:28:17

基于Springboot+Vue的林业资源管理系统源码文档部署文档代码讲解等

课题介绍本课题旨在设计并实现一款基于SpringBootVue前后端分离架构的林业资源管理系统&#xff0c;聚焦林业部门日常管控、资源监测、数据统计核心需求&#xff0c;构建集资源档案管理、实时监测、数据分析、权限管控于一体的智能化管理平台。系统采用SpringBoot 2.7.x作为后端…

作者头像 李华
网站建设 2026/5/13 1:51:02

redis源码deps目录

文章目录 fast-floatfpconvhdr_histogramhiredisjemalloclinenoiselua REDIS源码里deps目录是做什么的&#xff1f;从阅读deps目录&#xff0c;我们可以感觉到redis&#xff0c;真的是对性能的追求达到了极致&#xff0c;尽一切可能去优化性能。 deps主要存放的是依赖的第三方库…

作者头像 李华