news 2026/4/15 9:32:15

【剑斩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/10 23:18:18

AI伦理设计的未来趋势:AI应用架构师必须关注的5个方向(预测)

AI伦理设计的未来趋势:AI应用架构师必须关注的5个方向 副标题:从合规到共生的技术伦理落地指南 摘要/引言 当我们在2024年谈论AI时,“伦理”早已不是哲学课堂上的抽象讨论——它是技术架构的硬约束,是企业避免巨额罚款的防火墙,更是用户信任的底层逻辑。 问题陈述 今…

作者头像 李华
网站建设 2026/4/13 21:35:07

路由全局守卫

路由全局守卫1用户登录情况2用户未登录 whiteList.includes(to.path) 检查 to.path 这个「即将跳转的路由路径」&#xff0c;是否在 whiteList 这个「路由白名单数组」中&#xff0c;最终返回一个布尔值&#xff08;true/false&#xff09;。![在这里插入图片描述](https://i-b…

作者头像 李华
网站建设 2026/4/14 3:34:43

Thinkphp和Laravel基于的农产品预售商城 平台设计_v8557农户_

目录 设计思路技术架构功能模块安全与优化 项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理 设计思路 农产品预售商城平台基于ThinkPHP和Laravel框架开发&#xff0c;旨在连接农户与消费者&#xff0c;实现农产品的直接预售。平台设计围绕农户&am…

作者头像 李华
网站建设 2026/4/11 23:13:29

2026毕设ssm+vue旅游攻略网站系统论文+程序

本系统&#xff08;程序源码&#xff09;带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景关于旅游信息化管理问题的研究&#xff0c;现有研究主要以传统OTA平台整体架构为主&#xff0c;专门针对基于SSMVue技术栈的轻…

作者头像 李华
网站建设 2026/4/6 17:34:25

23.FPGA设计流程

1.设计准备 进行PCB设计前需要先明确PCB的功能和接口。 设计FPGA项目和设计PCB类似&#xff0c;只是设计对象是一块芯片的内部功能结构。 本质上讲&#xff0c;FPGA的设计&#xff0c;就是IC的设计。 在动手进行代码输入前必须明确IC的功能和对外接口。 2.设计输入 复杂的…

作者头像 李华
网站建设 2026/4/13 6:24:09

深度测评9个AI论文软件,助研究生轻松搞定学术写作!

深度测评9个AI论文软件&#xff0c;助研究生轻松搞定学术写作&#xff01; AI 工具如何重塑学术写作的未来 在当前的学术研究中&#xff0c;论文写作已成为研究生阶段不可或缺的一部分。随着人工智能技术的不断进步&#xff0c;越来越多的 AI 工具开始介入这一领域&#xff0c;…

作者头像 李华