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

网站建设 数据分析崇左seo

网站建设 数据分析,崇左seo,官方网站建设公司排名,备案用的网站建设方案书怎么写孤岛系列有: 孤岛总面积求解(用了dfs、bfs两种方法)和沉没孤岛(这里只写了dfs一种) 简单解释一下: 题目中孤岛的定义是与边缘没有任何接触的(也就是不和二维数组的最外圈连接)&…

孤岛系列有:

孤岛总面积求解(用了dfs、bfs两种方法)和沉没孤岛(这里只写了dfs一种)

简单解释一下:

题目中孤岛的定义是与边缘没有任何接触的(也就是不和二维数组的最外圈连接),所以我们在这里求面积和沉没孤岛都是先把不是孤岛的剔除 ,然后剩下的就是孤岛,然后处理起来就简单多了,那么我们这里是怎么遍历不是孤岛的岛呢,很简单,与数组外圈的1相连的肯定就不是孤岛,所以我们直接从四个方向的边缘遍历将他们都处理掉。

其实都是dfs、bfs的模板题、基础题,都比较简单,这里贴出代码(太懒了,都写在了一个代码里...)

题目、题解链接:代码随想录

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;public class TheSquareOfIsolatedIsland {public static int ans=0;public static int[][] next={{1,0},{0,1},{-1,0},{0,-1}};//    dfs遍历计算孤岛面积public static void dfs(int[][] grid,int x,int y){grid[x][y]=0;ans++;for(int i=0;i<4;i++){int nextX=x+next[i][0];int nextY=y+next[i][1];if(nextX<0||nextX>=grid.length||nextY<0||nextY>=grid[0].length||grid[nextX][nextY]==0) continue;dfs(grid,nextX,nextY);}}//    bfs遍历计算孤岛面积public static void bfs(int[][] grid,int x,int y){Queue<int[]> queue=new LinkedList<>();queue.add(new int[] {x,y});grid[x][y]=0;ans++;while(!queue.isEmpty()){int[] theNext=queue.poll();int xx=theNext[0];int yy=theNext[1];for(int i=0;i<4;i++){int nextX=xx+next[i][0];int nextY=yy+next[i][1];if(nextX<0||nextX>=grid.length||nextY<0||nextY>=grid[0].length||grid[nextX][nextY]==0) continue;queue.add(new int[] {nextX,nextY});ans++;grid[nextX][nextY]=0;}}}//    沉没孤岛public static void dfs2(int[][] grid,int x,int y){grid[x][y]=-1;for(int i=0;i<4;i++){int nextX=x+next[i][0];int nextY=y+next[i][1];if(nextX<0||nextY<0||nextX>=grid.length||nextY>= grid[0].length) continue;if(grid[nextX][nextY]==0||grid[nextX][nextY]==-1) continue;dfs2(grid,nextX,nextY);}}public static void main(String[] args){Scanner scanner=new Scanner(System.in);int n=scanner.nextInt();int m=scanner.nextInt();int[][] grid=new int[n][m];for(int i=0;i<n;i++){for(int j=0;j<m;j++){grid[i][j]=scanner.nextInt();}}scanner.close();for(int i=0;i<n;i++){if(grid[i][0]==1) dfs2(grid,i,0);if(grid[i][m-1]==1) dfs2(grid,i,m-1);}for(int j=0;j<m;j++){if(grid[0][j]==1) dfs2(grid,0,j);if(grid[n-1][j]==1) dfs2(grid,n-1,j);}ans=0;
//        for(int i=0;i<n;i++){
//            for(int j=0;j<m;j++){
//                if(grid[i][j]==1) bfs(grid,i,j);
//            }
//        }System.out.println(ans);//        沉没孤岛输出操作for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(grid[i][j]==1) grid[i][j]=1;if(grid[i][j]==-1) grid[i][j]=0;}}for(int i=0;i<n;i++){for(int j=0;j<m;j++){System.out.print(grid[i][j]+" ");}System.out.println();}}
}

http://www.ds6.com.cn/news/65554.html

相关文章:

  • 建设项目环境影响登记网站天津新闻发布稿
  • 北碚网站建设哪家好谷歌推广教程
  • 西安网址开发 网站制作西安网红
  • 做网站个体户经营范围怎么搭建自己的网站
  • 不提供花架子网站 我百度seo整站优化
  • 网站推广外链谷歌seo教程
  • 盐城网站开发建设做网站的步骤
  • 网站模板 实验室网络推广
  • 怎么用dreamweaver做网站广点通
  • 贵阳两学一做网站网络运营团队
  • 哪儿提供邢台做网站深圳白帽优化
  • 百度上开个网站怎么做国外搜索引擎入口
  • 游戏娱乐网站建设百度云账号登录
  • 杭州网站案列军事新闻最新消息今天
  • 网站面包屑导航设计特点扬州百度推广公司
  • 中国小康建设官方网站网络营销比较好的企业
  • 邵阳做网站软文营销的特点
  • 行业自建网站优化网站服务
  • 手机网站开发教程搜索广告排名
  • 教人做窗帘的视频网站百度seo推广怎么收费
  • 扬中网站建设效果百度应用市场app下载
  • 思行做网站软文营销广告案例
  • 软件承接网站建设茂名seo快速排名外包
  • 海口发布公众号石家庄seo管理
  • 西安建设公司网站推广赚佣金的软件排名
  • 广州网站建设市场seo首页排名优化
  • 龙华住房和建设局网站怎么无法登陆推广网站多少钱
  • 独立网站建设的步骤磁力猫
  • 厚街做网站公司360网站seo手机优化软件
  • 衡水网站建立要多少钱如何自己做网络推广