news 2026/6/10 12:37:51

【剑斩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/31 15:32:44

深度学习篇---YOLOv8n网络参数详细解析

YOLOv8 网络参数详细解析一、整体架构概览这是一个 YOLOv8n&#xff08;Nano&#xff09; 模型的配置文件&#xff0c;具有 129层&#xff0c;315万参数&#xff0c;计算量 8.9 GFLOPS。整体结构&#xff1a; ┌─────────────────┐ │ Input 640640 │ ├─…

作者头像 李华
网站建设 2026/5/27 19:00:13

【无人机】【基于多段杜宾斯Dubins路径的协同路径规划】复杂威胁环境下的多无人机协同路径规划研究附Matlab代码

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

作者头像 李华
网站建设 2026/6/8 23:56:02

制作面试问题准备工具,按岗位(运营/技术/行政)分类,整理高频面试题,生成个性化回答思路,支持模拟问答记录,帮求职者提升面试通过率。

1. 实际应用场景与痛点场景- 求职者针对不同岗位&#xff08;运营、技术、行政&#xff09;准备面试时&#xff0c;需要查阅大量面试题库。- 网上资料零散&#xff0c;缺乏针对性回答思路。- 模拟面试时需要记录问题和自己的回答&#xff0c;反复优化。- 不同岗位的面试重点差异…

作者头像 李华
网站建设 2026/6/6 7:50:48

【LeetCode刷题】LRU缓存

请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中&#xff0c;则返回关键字的值&#xff0c;否则返回 -…

作者头像 李华
网站建设 2026/6/9 21:00:54

2026必备!8个一键生成论文工具,专科生轻松搞定毕业论文!

2026必备&#xff01;8个一键生成论文工具&#xff0c;专科生轻松搞定毕业论文&#xff01; AI 工具助力论文写作&#xff0c;专科生也能轻松应对 随着人工智能技术的不断进步&#xff0c;越来越多的 AI 工具被应用于学术写作领域&#xff0c;为学生和研究者提供了极大的便利。…

作者头像 李华