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

关键词 网站网页设计教程入门

关键词 网站,网页设计教程入门,h5页面制作软件下载下来要钱吗,什么是搜索引擎优化一、二维网格图中探测环 题意: 给定一个二维数组grid,如果二维数组中存在一个环#xff0c;处于环上的值都是相同的。返回true#xff1b;如果不存在就返回false#xff1b; 思路#xff1a; 在以往的dfs搜索中#xff0c;都是往四个方向去dfs#xff1b;但是在这一道…一、二维网格图中探测环 题意: 给定一个二维数组grid,如果二维数组中存在一个环处于环上的值都是相同的。返回true如果不存在就返回false 思路 在以往的dfs搜索中都是往四个方向去dfs但是在这一道题中四个方向是不行的如果第i次是从左往右过来的那么i1次就不能从右往左再过 去。所以应该加上这个判断。 那我们就要走dfs函数上多加一个参数from。 如果上一次不是从左边来的那我们就可以往左走 如果上一次不是从右边来的那我们就可以往右走 以此类推 public void dfs(int x, int y, char ch, char from) {if (x 0 || x m || y 0 || y n || grid[x][y] ! ch) {return;}if (visited[x][y]) {hasRing true;return;}visited[x][y] true;if (from ! L)dfs(x, y - 1, ch, R);if (from ! R)dfs(x, y 1, ch, L);if (from ! U)dfs(x-1, y, ch, D);if (from ! D)dfs(x1, y, ch, U);} 代码 class Solution {boolean[][] visited;char[][] grid;int m, n;boolean hasRing;public boolean containsCycle(char[][] grid) {m grid.length;n grid[0].length;visited new boolean[m][n];this.grid grid;for (int i 0; i m; i) {for (int j 0; j n; j) {if (!visited[i][j]) {dfs(i, j, grid[i][j], L);if (hasRing) return true;}}}return false;}public void dfs(int x, int y, char ch, char from) {if (x 0 || x m || y 0 || y n || grid[x][y] ! ch) {return;}if (visited[x][y]) {hasRing true;return;}visited[x][y] true;if (from ! L)dfs(x, y - 1, ch, R);if (from ! R)dfs(x, y 1, ch, L);if (from ! U)dfs(x-1, y, ch, D);if (from ! D)dfs(x1, y, ch, U);} } 二、最大人工岛 思路: 1.首先找到所有的岛屿(连通块)将他们存储到map表中。可以使用一个值来标识一个连通块。 MapInteger,Integer mapnew HashMap();for(int i0;in;i){for(int j0;jn;j){if(grid[i][j]1){int areadfs(grid,i,j,islandIdx);//计算每一个连通块的大小map.put(islandIdx,area);//然后放到map里面保存islandIdx;//maxAreaMath.max(area,maxArea);}}} 2.将所有的连通块找出来之后然后枚举所有的海洋块。判断海洋块的周围有没有两个连通块(最多只能有两个连通块)。在枚举的同时比较得出最大面积值。 //枚举所有0的上下左右可能连接的情况for(int i0;in;i){for(int j0;jn;j){SetInteger setnew HashSet();if(grid[i][j]0){//左边的格子 如果是岛屿 就把岛屿编号放进来if(i-10grid[i-1][j]2){set.add(grid[i-1][j]);}if(i1ngrid[i1][j]2){set.add(grid[i1][j]);}if(j-10grid[i][j-1]2){set.add(grid[i][j-1]);}if(j1ngrid[i][j1]2){set.add(grid[i][j1]);}int curMaxArea1;for(Integer index:set){int otherAreamap.get(index);curMaxAreaotherArea;}maxAreaMath.max(maxArea,curMaxArea);}}} 代码 class Solution {int n;public int largestIsland(int[][] grid) {ngrid.length;int maxArea0,islandIdx2;//对所有岛屿编号并记录在哈希表中MapInteger,Integer mapnew HashMap();for(int i0;in;i){for(int j0;jn;j){if(grid[i][j]1){int areadfs(grid,i,j,islandIdx);//计算每一个连通块的大小map.put(islandIdx,area);//然后放到map里面保存islandIdx;//maxAreaMath.max(area,maxArea);}}}//枚举所有0的上下左右可能连接的情况for(int i0;in;i){for(int j0;jn;j){SetInteger setnew HashSet();if(grid[i][j]0){//左边的格子 如果是岛屿 就把岛屿编号放进来if(i-10grid[i-1][j]2){set.add(grid[i-1][j]);}if(i1ngrid[i1][j]2){set.add(grid[i1][j]);}if(j-10grid[i][j-1]2){set.add(grid[i][j-1]);}if(j1ngrid[i][j1]2){set.add(grid[i][j1]);}int curMaxArea1;for(Integer index:set){int otherAreamap.get(index);curMaxAreaotherArea;}maxAreaMath.max(maxArea,curMaxArea);}}}return maxArea; }public int dfs(int[][] grid,int x,int y,int count){if(!isArea(grid,x,y)||grid[x][y]count||grid[x][y]!1)return 0;grid[x][y]count;return 1dfs(grid,x-1,y,count)dfs(grid,x1,y,count)dfs(grid,x,y-1,count)dfs(grid,x,y1,count);}public boolean isArea(int[][] grid, int x, int y) {if (x n || x 0 || y 0 || y n)return false;return true;} }
http://www.hkea.cn/news/14395653/

相关文章:

  • 抖音同城推广南昌seo招聘
  • 如何创建自己的网站链接深圳英文网站建设专业公司
  • 短视频网站开发教程广州白云区最新信息
  • 重庆seo网站收录优化丽水专业网站建设公司
  • 招聘网站套餐工程造价建设信息网站
  • 怎样推广网站平台wordpress专题
  • 公关做的好的网站seo网站项目讲解
  • 龙泉驿网站建设wordpress网站加密
  • 加强 廉政网站建设企业商城网站开发
  • 网站功能报价wordpress 前台关闭
  • 中外商贸网站建设中英互译网站怎么做
  • 义乌做公司网站国外 网站页面
  • 宁波网站建设设计公司信息电脑游戏排行榜2020前十名
  • 定制网站大概多少钱网站推广站点建设与策划
  • 网站建设空间空间有几种类型手机免费个人网站建站
  • 刘强东自己做网站临沂百度公司地址
  • 手表到哪个网站买网站的动画效果代码大全
  • 石家庄移动端网站建设做黑彩网站能赚钱吗
  • 万和城网站wordpress如何正常打开二级菜单
  • 领动营销网站建设wordpress登录按钮
  • 德州哪里有做网站的WordPress句子主题
  • 自适应型网站建设怎么做淘宝优惠券的网站
  • 三河网站建设-七天网络百度模板网站模板
  • 做网站前需要准备什么软件wordpress metaslider
  • 网站系统升级需要多久怎么做抽奖网站
  • 做pos机网站有必要么技术支持上海网站建设
  • 黄冈网站建设公司制作网站wordpress主题 dux主题5.3
  • 沈阳市城乡建设网站黄骅市有什么好玩的地方
  • 兼职做网站挣钱么开发网站的步骤
  • 做网站接广告赚钱吗用境外服务器做网站