当前位置: 首页 > news >正文

网站建设咨询服务合同做门窗生意进哪个网站

网站建设咨询服务合同,做门窗生意进哪个网站,手机主题 wordpress,郑州上海做网站的公司有哪些Leetcode 1254 题意 给定一个m*n的矩阵含有0和1,1代表水,0代表陆地,岛屿是陆地的集合,如果一个岛屿和四个方向的边界相连,则不算封闭岛屿。求有多少个封闭的岛屿。 题目链接 https://leetcode.com/problems/number…

Leetcode 1254

题意

给定一个m*n的矩阵含有0和1,1代表水,0代表陆地,岛屿是陆地的集合,如果一个岛屿和四个方向的边界相连,则不算封闭岛屿。求有多少个封闭的岛屿。

题目链接

https://leetcode.com/problems/number-of-closed-islands/

思路

从边界上的0开始用dfs向四个方向遍历,把这些0形成的岛屿都遍历完成,这样就能排除和边界相连的岛屿。然后再从没有遍历过的0开始用dfs向四个方向遍历,并且计数。这些岛屿就是封闭的岛屿(参考number of islands)

题解

class Solution {
public:int m;int n;int closedIsland(vector<vector<int>>& grid) {m = grid.size();n = grid[0].size();int res = 0;vector<vector<bool>> vis(m, vector<bool>(n, false));for(int i = 0; i < m; i++) {if(grid[i][0] == 0 && !vis[i][0]) {dfs(grid, vis, i, 0);}if(grid[i][n-1] == 0 && !vis[i][n-1]) {dfs(grid, vis, i, n-1);}}for(int i = 0; i < n; i++) {if(grid[0][i] == 0 && !vis[0][i]) {dfs(grid, vis, 0, i);}if(grid[m-1][i] == 0 && !vis[m-1][i]) {dfs(grid, vis, m-1, i);}}for(int i = 0; i < m; i++) {for(int j = 0; j < n; j++) {if(grid[i][j] == 0 && !vis[i][j]) {dfs(grid, vis, i, j);res++;}}}return res;}void dfs(vector<vector<int>>& grid, vector<vector<bool>>& vis, int x, int y) {vis[x][y] = true;int dk[] = {-1, 0, 1, 0, -1};for(int i = 0; i < 4; i++) {int dx = x + dk[i];int dy = y + dk[i+1];if(dx >= 0 && dx < m && dy >= 0 && dy < n && !vis[dx][dy] && grid[dx][dy] == 0) {dfs(grid, vis, dx, dy);}}}
};

时间复杂度: O ( m n ) O(mn) O(mn) m为给定矩阵的长度,n为给定矩阵的宽度
空间复杂度: O ( m n ) O(mn) O(mn) m为给定矩阵的长度,n为给定矩阵的宽度

Leetcode 1020

思路

和Leetcode 1254一样,只是换壳的Number of Closed Islands + Max Area of Island,不赘述了。

题解

class Solution {
public:int m;int n;int numEnclaves(vector<vector<int>>& grid) {m = grid.size();n = grid[0].size();int res = 0;vector<vector<bool>> vis(m, vector<bool>(n, false));for(int i = 0; i < m; i++) {if(grid[i][0] == 1 && !vis[i][0]) {dfs(grid, vis, i, 0);}if(grid[i][n-1] == 1 && !vis[i][n-1]) {dfs(grid, vis, i, n-1);}}for(int i = 0; i < n; i++) {if(grid[0][i] == 1 && !vis[0][i]) {dfs(grid, vis, 0, i);}if(grid[m-1][i] == 1 && !vis[m-1][i]) {dfs(grid, vis, m-1, i);}}for(int i = 0; i < m; i++) {for(int j = 0; j < n; j++) {if(grid[i][j] == 1 && !vis[i][j]) {res += dfs(grid, vis, i, j);}}}return res;}int dfs(vector<vector<int>>& grid, vector<vector<bool>>& vis, int x, int y) {vis[x][y] = true;int area = 1;int dk[] = {-1, 0, 1, 0, -1};for(int i = 0; i < 4; i++) {int dx = x + dk[i];int dy = y + dk[i+1];if(dx >= 0 && dx < m && dy >= 0 && dy < n && grid[dx][dy] == 1 && !vis[dx][dy]) {area += dfs(grid, vis, dx, dy);}}return area;}
};

时间复杂度: O ( m n ) O(mn) O(mn) m为给定矩阵的长度,n为给定矩阵的宽度
空间复杂度: O ( m n ) O(mn) O(mn) m为给定矩阵的长度,n为给定矩阵的宽度

http://www.yayakq.cn/news/137854/

相关文章:

  • 在手机上做网站是什么软件网站怎么做前台跟后台的接口
  • 如何做网站二级域名做童车外贸上哪个网站
  • 修改网站描述用百度云服务器做网站
  • 阿里云建站流程wordpress登录网站
  • 莱阳有网站建设推广的吗南山网站建设设计
  • cdr做网站流程2023房地产新闻
  • 平面设计师的网站产品网络推广方案设计
  • 网站建设价格标准方案制作网站的app
  • 东莞市公司网站建设怎么样一个网站需要多少钱
  • 商务网站建设工程师是营销型定制网站
  • 外链网站分类中文域名网站标识
  • 怎么推广一个网站广州游戏开发公司
  • 商务网站规划与建设心得建设电子商务网站的目的和意义
  • 邯郸现代建设集团网站海口市龙华区核酸检测
  • 服务器主机 网站吗windows2012iis网站默认设置
  • 建站公司兴田德润做网站天津
  • 高质量的南昌网站建设电子商务网站建设臧良运课后答案
  • 西青做网站的公司采购需求发布平台
  • 销售网站内容设计方案yahoo网站提交入口
  • 网络推广网站排名网站优化内链怎么做
  • 网站建设汇报会如何做ppt的模板下载网站
  • 网站开发高级工程师专业做网站报价
  • 上海网站建设集中建设网站主机免费的怎么下载
  • 河北省和城乡建设厅网站牡丹江商城网站开发设计
  • 自己建网站怎么做影视资源wordpress首页排版
  • 做网站的公司是什么陕西省城乡和住房建设厅网站
  • 91色做爰免费网站服务器做网站数据库
  • 网站模板购买 优帮云微信商家联盟平台
  • 免费商城建站网站文章内容排版要求
  • 网站开发 佛山wordpress网站 app