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

东莞做网站seo中国网库网站介绍

东莞做网站seo,中国网库网站介绍,wordpress图片主题模板,vi设计案例赏析给一个0 1矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。 岛屿问题: 相邻陆地可以组成一个岛屿(相邻:上下左右) 判断岛屿个数。 C 解决方案 #include &…

        给一个0 1矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。 岛屿问题: 相邻陆地可以组成一个岛屿(相邻:上下左右) 判断岛屿个数。

 C++ 解决方案

#include <iostream>
#include <vector>using namespace std;void dfs(vector<vector<int>>& grid, int i, int j) {if (i < 0 || i >= grid.size() || j < 0 || j >= grid[0].size() || grid[i][j] == 0) {return;}grid[i][j] = 0; // Mark the current cell as visited// Visit all four adjacent cellsdfs(grid, i - 1, j); // Updfs(grid, i + 1, j); // Downdfs(grid, i, j - 1); // Leftdfs(grid, i, j + 1); // Right
}int numIslands(vector<vector<int>>& grid) {int count = 0;for (int i = 0; i < grid.size(); ++i) {for (int j = 0; j < grid[0].size(); ++j) {if (grid[i][j] == 1) {++count;dfs(grid, i, j); // Start DFS from the current cell to mark all connected 1s as visited}}}return count;
}int main() {vector<vector<int>> grid = {{1, 1, 0, 0, 0},{1, 1, 0, 0, 1},{0, 0, 1, 0, 1},{0, 0, 0, 1, 1}};cout << "Number of islands: " << numIslands(grid) << endl;return 0;
}

Python 解决方案 

def dfs(grid, i, j):if i < 0 or i >= len(grid) or j < 0 or j >= len(grid[0]) or grid[i][j] == 0:returngrid[i][j] = 0  # Mark the current cell as visited# Visit all four adjacent cellsdfs(grid, i - 1, j)  # Updfs(grid, i + 1, j)  # Downdfs(grid, i, j - 1)  # Leftdfs(grid, i, j + 1)  # Rightdef num_islands(grid):count = 0for i in range(len(grid)):for j in range(len(grid[0])):if grid[i][j] == 1:count += 1dfs(grid, i, j)  # Start DFS from the current cell to mark all connected 1s as visitedreturn count# Example usage
grid = [[1, 1, 0, 0, 0],[1, 1, 0, 0, 1],[0, 0, 1, 0, 1],[0, 0, 0, 1, 1]
]print("Number of islands:", num_islands(grid))

解释

  1. 深度优先搜索(DFS)
    • dfs函数用于遍历所有与当前陆地相连的陆地,并将它们标记为已访问(即0)。
    • 每当遇到一个未访问的陆地(即值为1的单元格),我们增加岛屿计数,并调用dfs来标记所有相连的陆地。
  2. 遍历矩阵
    • numIslands函数遍历整个矩阵,每当遇到一个新的陆地时,调用dfs函数,并增加岛屿计数。

复杂度

  • 时间复杂度:O(M * N),其中M是矩阵的行数,N是矩阵的列数,因为我们需要遍历整个矩阵一次。
  • 空间复杂度:O(M * N)(在极端情况下,递归调用栈的深度可能达到这个级别),但由于DFS的深度通常较小,实际空间占用可能会更小。

http://www.hyszgw.com/news/44109.html

相关文章:

  • 网站网络推广优化哪家好微信扫码点餐小程序
  • 湖南网站搜索排名优化公司闸北区网站制作
  • 网站建设汇报会做网站多久能盈利
  • 学校网站开发程序c 网站开发案例详解
  • 提高网站建设水平意见方案wordpress导航下拉
  • 免费网站推广ymdir报社网站开发做什么
  • 台州模板网建站一级a做爰小说免费网站
  • 网站短期培训能学什么外贸平台网站有哪些
  • 全面了解网站开发耒阳网站开发
  • 长沙做网站建设公司排名seo推广员招聘
  • 网络建设网站新闻类网站源码
  • wordpress访问子网站郑州少儿编程培训机构
  • wordpress做图片站的可能性盖州网站优化
  • 做公司网站需要会什么科目网站建设 seo商情网
  • 东莞网站建设推广服务wordpress媒体库 不显示
  • 郑州做网站找哪家常州做的网站的公司哪家好
  • 北美购物网站排名国外 素材 网站
  • 沧州网站设计公司定制网站要多少钱
  • j2ee 网站开发做同城网站需要哪些手续
  • 高品质网站建设公司手机 做网站
  • 建设网站的公司济南兴田德润o评价网站做细分领域
  • 毕节市建设厅网站帮人家做家务的网站
  • 境外网站开发佳木斯城乡建设局官方网站
  • 网站建设合同包含随州网站建设
  • 怎么做切片网站wap视频网站建设难吗?
  • 网站开发长期合作如何让网站自适应
  • 简单企业网站用什么wordpress主题路径
  • 重庆网站托管外包公司哪家好网站建设代理都有哪些
  • 罗湖做网站公司排名2023年第三波新冠9月
  • 德州网站建设设计网络服务器租赁费高吗