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

成都好的网站设计公司云服务器是干什么的

成都好的网站设计公司,云服务器是干什么的,wordpress建什么站,网站不备案会有什么影响[ 题目描述 ]: [ 思路 ]: 一个独立的岛屿其周围都是0,那么从某一个 1 出发,将其上下左右包含其自身的 1 全部设置为0,就相当于去除了一片大陆,大陆数1,然后寻找下一个 1 去进行重复操作&#…

[ 题目描述 ]:
在这里插入图片描述
[ 思路 ]:

  • 一个独立的岛屿其周围都是0,那么从某一个 1 出发,将其上下左右包含其自身的 1 全部设置为0,就相当于去除了一片大陆,大陆数+1,然后寻找下一个 1 去进行重复操作,直到整个图都是 0
  • 那么从第 [0,0] 个元素开始,如果其是 1 ,那么去判断,他右边 [0,1] 和下边 [1,0] 元素是否为1
    • 为 1,则需要去探寻该元素的上下左右元素是否为 1 (递归)
    • 为 0,说明抵达了这偏大陆的边界,设置其自身为0,结束这个方向的探寻
  • 每消除一片大陆,大陆数+1
  • 运行如下
    在这里插入图片描述
void eliminate(char** grid,int row,int column,int gridSize, int* gridColSize){grid[row][column]='0';if(row-1>=0 && grid[row-1][column]=='1') eliminate(grid,row-1,column,gridSize,gridColSize);if(row+1<gridSize && grid[row+1][column]=='1') eliminate(grid,row+1,column,gridSize,gridColSize);if(column-1>=0 && grid[row][column-1]=='1') eliminate(grid,row,column-1,gridSize,gridColSize);if(column+1<gridColSize[row] && grid[row][column+1]=='1') eliminate(grid,row,column+1,gridSize,gridColSize);
}int numIslands(char** grid, int gridSize, int* gridColSize) {int landsum=0;for(int i=0;i<gridSize;i++){for(int j=0;j<gridColSize[i];j++){if(grid[i][j]=='1'){eliminate(grid,i,j,gridSize,gridColSize);landsum++;}}}return landsum;
}

[ 官方题解 ]:

  • 方法一:深度优先搜索,基本同上
  • 方法二:广度优先搜索,扫描整个二维网格。如果一个位置为 1,则将其加入队列,开始进行广度优先搜索。在广度优先搜索的过程中,每个搜索到的 1 都会被重新标记为 0。直到队列为空,搜索结束。最终岛屿的数量就是我们进行广度优先搜索的次数。
class Solution {
public:int numIslands(vector<vector<char>>& grid) {int nr = grid.size();if (!nr) return 0;int nc = grid[0].size();int num_islands = 0;for (int r = 0; r < nr; ++r) {for (int c = 0; c < nc; ++c) {if (grid[r][c] == '1') {++num_islands;grid[r][c] = '0';queue<pair<int, int>> neighbors;neighbors.push({r, c});while (!neighbors.empty()) {auto rc = neighbors.front();neighbors.pop();int row = rc.first, col = rc.second;if (row - 1 >= 0 && grid[row-1][col] == '1') {neighbors.push({row-1, col});grid[row-1][col] = '0';}if (row + 1 < nr && grid[row+1][col] == '1') {neighbors.push({row+1, col});grid[row+1][col] = '0';}if (col - 1 >= 0 && grid[row][col-1] == '1') {neighbors.push({row, col-1});grid[row][col-1] = '0';}if (col + 1 < nc && grid[row][col+1] == '1') {neighbors.push({row, col+1});grid[row][col+1] = '0';}}}}}return num_islands;}
};
  • 方法三:并查集,如果一个位置为 1,则将其与相邻四个方向上的 1 在并查集中进行合并。最终岛屿的数量就是并查集中连通分量的数目。
class UnionFind {
public:UnionFind(vector<vector<char>>& grid) {count = 0;int m = grid.size();int n = grid[0].size();for (int i = 0; i < m; ++i) {for (int j = 0; j < n; ++j) {if (grid[i][j] == '1') {parent.push_back(i * n + j);++count;}else {parent.push_back(-1);}rank.push_back(0);}}}int find(int i) {if (parent[i] != i) {parent[i] = find(parent[i]);}return parent[i];}void unite(int x, int y) {int rootx = find(x);int rooty = find(y);if (rootx != rooty) {if (rank[rootx] < rank[rooty]) {swap(rootx, rooty);}parent[rooty] = rootx;if (rank[rootx] == rank[rooty]) rank[rootx] += 1;--count;}}int getCount() const {return count;}private:vector<int> parent;vector<int> rank;int count;
};class Solution {
public:int numIslands(vector<vector<char>>& grid) {int nr = grid.size();if (!nr) return 0;int nc = grid[0].size();UnionFind uf(grid);int num_islands = 0;for (int r = 0; r < nr; ++r) {for (int c = 0; c < nc; ++c) {if (grid[r][c] == '1') {grid[r][c] = '0';if (r - 1 >= 0 && grid[r-1][c] == '1') uf.unite(r * nc + c, (r-1) * nc + c);if (r + 1 < nr && grid[r+1][c] == '1') uf.unite(r * nc + c, (r+1) * nc + c);if (c - 1 >= 0 && grid[r][c-1] == '1') uf.unite(r * nc + c, r * nc + c - 1);if (c + 1 < nc && grid[r][c+1] == '1') uf.unite(r * nc + c, r * nc + c + 1);}}}return uf.getCount();}
};

文章转载自:

http://LkOTVkf0.jzmqk.cn
http://yNxemYY7.jzmqk.cn
http://aq0HEtB0.jzmqk.cn
http://MRjkfd8w.jzmqk.cn
http://TuSyxzJE.jzmqk.cn
http://Fiaeeqr7.jzmqk.cn
http://H5M7Hk2X.jzmqk.cn
http://BbvxdkSm.jzmqk.cn
http://b0RvoRkf.jzmqk.cn
http://9lvHZqZh.jzmqk.cn
http://9WG3QTpt.jzmqk.cn
http://H7uRkXnu.jzmqk.cn
http://jk86CT2p.jzmqk.cn
http://PBpgYLLm.jzmqk.cn
http://Ol0nUX0x.jzmqk.cn
http://byzVIfIX.jzmqk.cn
http://oO57Iq81.jzmqk.cn
http://JAEXuC3s.jzmqk.cn
http://l932iOTv.jzmqk.cn
http://08h0SGlm.jzmqk.cn
http://5tr0tnq5.jzmqk.cn
http://5bHLlFaf.jzmqk.cn
http://PIVTIrDN.jzmqk.cn
http://g2uA3fZz.jzmqk.cn
http://AshuQVeN.jzmqk.cn
http://gz002S5t.jzmqk.cn
http://aF80PAbL.jzmqk.cn
http://P05PdVLr.jzmqk.cn
http://v5jzdFVg.jzmqk.cn
http://lIqZq2eF.jzmqk.cn
http://www.dtcms.com/wzjs/713916.html

相关文章:

  • 长沙河西网站建设天津网站制作策划
  • 忻州市中小企业局网站wap网站e4a做app
  • 广州培训做网站营销网站建设资料
  • 湛江公司做网站百度指数人群画像哪里查询
  • 自己优化网站全球优秀网页设计机构
  • c 怎么和网站做交互WordPress 调整语言
  • 长沙高校网站制作公司微信小程序网站建设公司
  • 企业网站建设前网站目的需明确wordpress加载进度条
  • 企业网站模板大全hyper cache wordpress
  • 网站开发背景图模板wordpress 4.1.1 中文
  • 网站建设的文字用什么字体较好企业代运营公司
  • 广州网站系统开发在线crm厂商
  • 自己的网站做优化怎么设置缓存怎么做百度搜到的网站免费的
  • 电子商务网站建设规划书实例内蒙古微网站建设
  • 项城市建设方案公示在哪个网站wordpress会员卡系统
  • 简单企业网站源码网页设计实训报告范文免费
  • 中国建设银行网站对公账户首页做安卓icon图标下载网站
  • 住房和城乡建设部网站唐山抽奖网站插件
  • 网站禁用右键如何创建自媒体手机网站
  • 怎么做贝店式的网站网站 后台 模板
  • 国内优秀html网站电子商务网站的建设视频
  • 鹤壁北京网站建设优设网学影视剪辑免费
  • 网站做支付宝支付接口厂房装修多少钱一个平方米
  • 达州网站建设公司中国交通建设集团有限公司待遇
  • 陕西省咸阳市建设银行网站汕头百度网络推广
  • 网站设计与开发范本深圳定制建站公司电话
  • 国贸汽车网站建设体彩网站开发
  • 北京微网站建设设计服务商wordpress 社交图标
  • 重庆网站线上推广荆州网站设计
  • 苏州做网站优化哪家好郑州优化公司有哪些