【痛点解决】GitHub 加速计划 / vc / vcredist 全方位解决方案

核心内容摘要

Dify企业级权限治理:从RBAC到ABAC的5步平滑迁移方案及性能提升47%实测数据
小白也能用的Nano-Banana拆解工具,让服装设计变得超简单

Python爬虫实战:爬取豆瓣小组帖子+提取优质干货,生成个人知识库

题目描述

算法原理思路使用 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; } };

b站永久看片免费-b站永久看片免费应用

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

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