news 2026/4/18 9:45:09

【剑斩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/17 5:33:07

为什么自己写的论文AIGC率那么高?

去年底&#xff0c;Turnitin系统进行了一次重要升级。 以下是更新通知&#xff1a; 从通知上来看turnitin更新了AI语言大模型&#xff0c;更新后的AI检测模型能识别出更多AI内容&#xff0c;同时仍然保持较低的误报率。 系统更新后&#xff0c;很多同学就遇到一个问题&#x…

作者头像 李华
网站建设 2026/4/16 13:48:41

【无人机】无人机在时变风下跟随策略的路径模拟附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码及仿真咨询…

作者头像 李华
网站建设 2026/4/17 12:16:09

Thinkphp和Laravel汽车丢失车辆高速收费管理系统 车联网位置信息管理软件的设计与实现_

目录摘要概述核心功能设计技术实现差异数据安全与扩展性项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理摘要概述 ThinkPHP和Laravel作为主流PHP框架&#xff0c;可用于开发汽车丢失车辆追踪与高速收费管理系统。该系统结合车联网技术&#xff0c…

作者头像 李华
网站建设 2026/4/17 12:12:20

开发常用 宏

1、Rust 标准库 derive 宏与第三方 derive 宏的核心区别 二者本质都是编译期自动生成代码的声明宏&#xff0c;但在依赖来源、功能定位、实现方式、稳定性等核心维度有本质差异&#xff0c;直接决定了使用方式、适用场景和工程依赖成本。 一、核心维度对比表对比维度标准库deri…

作者头像 李华
网站建设 2026/4/18 3:25:08

2026年AI生成PPT工具大洗牌:ChatPPT登顶,职场效率革命已来

2026年AI生成PPT工具大洗牌&#xff1a;ChatPPT登顶&#xff0c;职场效率革命已来 2026年1月25日&#xff0c;某头部互联网公司市场部总监王女士在朋友圈晒出一张截图&#xff1a;用ChatPPT生成的年度营销方案PPT&#xff0c;从输入关键词到完成终稿仅用4分钟&#xff0c;而往年…

作者头像 李华