2026冲刺用!10个一键生成论文工具测评:本科生毕业论文+开题报告高效写作指南

核心内容摘要

Qwen2.5-1.5B应用案例:打造企业内部知识问答助手
Qwen-Image-Edit保姆级教程:从安装到高清人像编辑全流程

PhotoGIMP:革新性零门槛GIMP优化补丁,让Photoshop用户无缝迁移

题目描述

算法原理思路使用 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 pairint,int PII; int n,m; public: int numEnclaves(vectorvectorint grid) { n grid.size(); m grid[0].size(); vectorvectorbool vis(grid.size(),vectorbool(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,vectorvectorint grid,vectorvectorbool vis)//BFS 算法 { if(grid[i][j] ! 1 || vis[i][j] ! false) return 0; queuePII 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]

{ vis[a][b] true; que.push({a,b}); count; } } } return count; } };

红桃m80n50-红桃应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123