news 2026/4/23 11:30:23

【剑斩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/4/18 14:51:26

从概念到落地:企业AI架构评估体系的8个实施阶段

从概念到落地:企业AI架构评估体系的8个实施阶段全指南 标题选项 从概念到落地:企业AI架构评估体系的8个实施阶段全指南 企业AI架构怎么评?8个阶段帮你从模糊到清晰 告别拍脑袋:企业AI架构评估的8个实施阶段与实操技巧 AI架构评估实战:8步搭建可落地的企业级评估体系 企业…

作者头像 李华
网站建设 2026/4/18 12:02:23

基于Python的购物管理系统(源码+lw+部署文档+讲解等)

课题介绍 本课题旨在设计实现基于Python的购物管理系统&#xff0c;聚焦中小型商家线上线下一体化经营需求&#xff0c;覆盖商品管理、订单处理、库存管控、用户运营及数据统计核心场景&#xff0c;破解传统购物管理流程繁琐、数据不同步、库存易积压等痛点&#xff0c;构建高效…

作者头像 李华
网站建设 2026/4/19 0:10:44

“梦回汉唐”汉服商城网站的设计与实现(11823)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告&#xff09;远程调试控屏包运行 三、技术介绍 Java…

作者头像 李华