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

php商务网站开发棋牌游戏网站建设费用

php商务网站开发,棋牌游戏网站建设费用,郑州市域名服务公司,电子商务网站建设网上商城前言:前段时间论文开题落下了很多进度,今天开始会尽快赶上 99.岛屿数量 深搜 思路:对地图进行遍历遇到一个没有遍历过的陆地节点,计数器就1,并把该节点所能遍历到的陆地都标记上;遇到标记过的陆地节点和海…

前言:前段时间论文开题落下了很多进度,今天开始会尽快赶上

99.岛屿数量 深搜

思路:对地图进行遍历遇到一个没有遍历过的陆地节点,计数器就+1,并把该节点所能遍历到的陆地都标记上;遇到标记过的陆地节点和海洋节点的时候直接跳过。

代码如下:

import java.util.Scanner;
public class Main{//定义前进的方向public static int[][] dir={{0,1},{1,0},{-1,0},{0,-1}};//深度搜索函数public static void dfs(boolean[][] visited,int[][] grid,int x,int y){for(int i=0;i<4;i++){int nextX=x+dir[i][0];int nextY=y+dir[i][1];if(nextX<0 || nextY<0 || nextX>=grid.length || nextY>=grid[0].length) continue;if(!visited[nextX][nextY] && grid[nextX][nextY]==1){visited[nextX][nextY]=true;dfs(visited,grid,nextX,nextY);}}}public static void main (String[] args) {//构建地图Scanner scan = new Scanner(System.in);int n=scan.nextInt();int m=scan.nextInt();int[][] grid=new int[n][m];for(int i=0;i<n;i++){for(int j=0;j<m;j++){grid[i][j]=scan.nextInt();}}//判断是否为岛屿int result=0;boolean[][] visited=new boolean[n][m];for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(!visited[i][j] && grid[i][j]==1){result++;visited[i][j]=true;dfs(visited,grid,i,j);}}}System.out.println(result);}
}

99.岛屿数量 广搜

注意:要在节点加入队列时就标记走过,如果从队列拿出来的时候再标记走过就会导致很多节点重复加入队列。

广度搜索使用队列存放下一层搜索的节点,与DFS的区别是不需要调用自身,把队列中的元素遍历完即可。

代码如下:

import java.util.*;
class Pair{int x;int y;public Pair(int x, int y) {this.x = x;this.y = y;}
}public class Main{//定义前进的方向public static int[][] dir={{0,1},{1,0},{-1,0},{0,-1}};public static void bfs(boolean[][] visited,int[][] grid,int x,int y){Queue<Pair> queue=new LinkedList<>();queue.add(new Pair(x,y));visited[x][y]=true;while(!queue.isEmpty()){Pair cur=queue.poll();int curX=cur.x;int curY=cur.y;for(int i=0;i<4;i++){int nextX=curX+dir[i][0];int nextY=curY+dir[i][1];if(nextX<0 || nextY<0 || nextX>=grid.length || nextY>=grid[0].length) continue;if(!visited[nextX][nextY] && grid[nextX][nextY]==1){queue.add(new Pair(nextX,nextY));visited[nextX][nextY]=true;}}}}public static void main (String[] args) {Scanner scan = new Scanner(System.in);int n=scan.nextInt();int m=scan.nextInt();int[][] grid=new int[n][m];for(int i=0;i<n;i++){for(int j=0;j<m;j++){grid[i][j]=scan.nextInt();}}int result=0;boolean[][] visited=new boolean[n][m];for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(!visited[i][j] && grid[i][j]==1){result++;bfs(visited,grid,i,j);}}}System.out.println(result);}
}

100.岛屿的最大面积

思路:只需要在标记一个陆地节点周边所有陆地节点时对这个岛屿的面积计数即可,最后比较获得最大的面积。使用全局静态变量count来计数。

dfs只处理下一个节点,即在主函数遇到岛屿就计数为1,dfs处理接下来的相邻陆地.

代码如下:

import java.util.Scanner;
public class Main{//定义前进的方向public static int[][] dir={{0,1},{1,0},{-1,0},{0,-1}};public static int count;//深度搜索函数public static void dfs(boolean[][] visited,int[][] grid,int x,int y){for(int i=0;i<4;i++){int nextX=x+dir[i][0];int nextY=y+dir[i][1];if(nextX<0 || nextY<0 || nextX>=grid.length || nextY>=grid[0].length) continue;if(!visited[nextX][nextY] && grid[nextX][nextY]==1){visited[nextX][nextY]=true;count++;dfs(visited,grid,nextX,nextY);}}}public static void main (String[] args) {//构建地图Scanner scan = new Scanner(System.in);int n=scan.nextInt();int m=scan.nextInt();int[][] grid=new int[n][m];for(int i=0;i<n;i++){for(int j=0;j<m;j++){grid[i][j]=scan.nextInt();}}//判断是否为岛屿boolean[][] visited=new boolean[n][m];int result=0;for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(!visited[i][j] && grid[i][j]==1){count=1;visited[i][j]=true;dfs(visited,grid,i,j);}if(count>result) result=count;}}System.out.println(result);}
}
http://www.yayakq.cn/news/846937/

相关文章:

  • 浙江制做网站的公司深圳石岩做网站的公司
  • 贵阳网站建设设计tk域名官方网站
  • 服务网站欣赏全国定制网站服务器云主机
  • 怎么选择昆明网站建设东莞化工网站建设
  • 查询网站备案密码是什么玖久建筑网
  • 长春做网站团队济宁做网站的企业
  • 个人网站设计论文下载华为官网手机商城app
  • 杜集网站建设开发一个网站的步骤流程
  • 大学生兼职网站建设策划书新媒体营销和网络营销的区别
  • 模板建站难吗seo工程师是什么职业
  • 七色板网站建设h5游戏网站建设
  • 四川禾力建设工程质量检测有限公司网站wordpress标签页
  • 佛山市网站建设企业wordpress 颜色选择器
  • 开一个网站需要什么手机免费网站
  • wordpress无法开启多站点淘宝客做网站教程
  • 上海 网站建收银系统哪个软件好
  • 域名购买哪个网站最好微信运营推广方案
  • 南京 网站建设大型网站制作哪家好
  • 手机网站推广怎么做wordpress怎么做404页面跳转
  • 青岛网站建设公司怎么样ps做网站大小
  • 网站建设公司宣传册大连知名的seo外包
  • 哈尔滨建站模板展示莒县网站制作公司
  • discuz做网站赚钱经历百度快照怎么打开
  • 医院网站建设公司价格低网页制作教案
  • 广州建网站要多少钱Wordpress自动回复评论
  • 飞行时代网站建设温州专业微网站制作公司
  • 赣州网站建设哪家好做威尼斯网站代理算是违法吗
  • 做艺术品展览的网站国内做的比较好的跨境电商网站
  • 网站虚拟主机免备案免费网站推广大
  • 上海长宁区网站建设做网站的分辨率