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

龙岩建设局招聘网站网络广告策划书

龙岩建设局招聘网站,网络广告策划书,汽车网址导航大全,网站的功能定位200.岛屿数量 leetcode题目链接:https://leetcode.cn/problems/number-of-islands leetcode AC记录: 思路:深度优先遍历,从0,0开始遍历数组,使用boolean类型数组used记录是否被访问过,进行一…

200.岛屿数量

leetcode题目链接:https://leetcode.cn/problems/number-of-islands

leetcode AC记录:

思路:深度优先遍历,从0,0开始遍历数组,使用boolean类型数组used记录是否被访问过,进行一次完整的深度优先遍历后,岛屿数量加1,也就是所有和当前1联通的位置认为是同一岛屿。

代码如下:

 public int numIslands(char[][] grid) {int res = 0;boolean[][] used = new boolean[grid.length][grid[0].length];for(int i = 0;i < grid.length;i++) {for(int j = 0;j < grid[0].length;j++) {if(grid[i][j] == '1' && !used[i][j]) {res++;dfs(grid.length, grid[0].length, i, j, grid, used);}}}return res;}public void dfs(int xlength, int ylength, int x,int y, char[][] grid, boolean[][] used) {if(x >= 0 && y >= 0 && x < xlength && y < ylength && !used[x][y] && grid[x][y] == '1') {used[x][y] = true;dfs(xlength, ylength, x-1, y, grid, used);dfs(xlength, ylength, x, y-1, grid, used);dfs(xlength, ylength, x+1, y, grid, used);dfs(xlength, ylength, x, y+1, grid, used);}}

130. 被围绕的区域

leetcode题目链接:https://leetcode.cn/problems/surrounded-regions

leetcode AC记录:

思路:如果直接使用深度优先遍历并记录是否触碰到边缘会有问题。所以从边缘开始处理,遇到边缘,判断条件如下代码。处理步骤是判断边缘,如果符合并且没有被访问过,进行深度优先遍历,把遍历节点替换为@。深度优先遍历结束后,再次遍历数组,如果是@,替换回O,如果是O,说明是符合条件的,替换为X。

代码如下:

public void solve(char[][] board) {int xLength = board.length, yLength = board[0].length;boolean[][] used = new boolean[xLength][yLength];for(int i = 0;i < xLength;i++) {for(int j = 0;j < yLength;j++) {if(isEdge(i, j, xLength, yLength) && !used[i][j]) {dfs(board, i,j, used);}}}for(int i = 0;i < xLength;i++) {for(int j = 0;j < yLength;j++) {if(board[i][j] == 'O') {board[i][j] = 'X';} else if(board[i][j] == '@') {board[i][j] = 'O';}}}}public boolean isEdge(int x, int y, int xLength, int yLength) {return (x == 0 || y == 0 || x == xLength -1 || y == yLength -1);}public void dfs(char[][] board, int x, int y, boolean[][] used) {if(x >= 0 && y >= 0 && x < board.length && y < board[0].length) {if(!used[x][y] && board[x][y] == 'O') {used[x][y] = true;board[x][y] = '@';dfs(board, x-1, y, used);dfs(board, x, y-1, used);dfs(board, x, y+1, used);dfs(board, x+1, y, used);}}}

1091. 二进制矩阵中的最短路径

leetcode题目链接:https://leetcode.cn/problems/shortest-path-in-binary-matrix

leetcode AC记录:

思路:广度优先遍历,结果就是遍历的层数,最小值靠优先返回保证。首先将0,0入队,队列不为空进行循环,遍历每一层,也就是当前队列大小(得用变量临时保存,不然队列的大小会随着入队操作变化)。然后出队,取出相临的节点,判断如果值符合数组下标并且值是0,放入队列中,如果当前取出的是数组右下脚的值,则返回结果。

 代码如下:

 public int shortestPathBinaryMatrix(int[][] grid) {Deque<Point> queue = new LinkedList<>();queue.offer(new Point(0,0));boolean[][] used = new boolean[grid.length][grid[0].length];int res = 1;while(!queue.isEmpty()) {int size = queue.size();for(int i = 0;i < size;i++) {Point point = queue.poll();int x = point.x, y = point.y;if(x >= 0 && y >= 0 && x < grid.length && y < grid[0].length && grid[x][y] == 0 && !used[x][y]) {if(x == grid.length-1 && y == grid[0].length-1) {return res;}used[x][y] = true;queue.offer(new Point(x-1, y-1));queue.offer(new Point(x-1, y));queue.offer(new Point(x, y-1));queue.offer(new Point(x+1, y-1));queue.offer(new Point(x+1, y+1));queue.offer(new Point(x+1, y));queue.offer(new Point(x, y+1));queue.offer(new Point(x-1, y+1));}}res++;}return -1;}public static class Point {public int x;public int y;public Point(int x, int y) {this.x = x;this.y = y;}}
http://www.yidumall.com/news/63510.html

相关文章:

  • 物联网应用河南郑州网站推广优化
  • 网站建设的行业新闻广东深圳疫情最新消息
  • php网站微信登录怎么做长春网络优化哪个公司在做
  • 曲靖网站制作一条龙自动外链发布工具
  • 网站里面的超链接怎么做互联网营销师证书骗局
  • 吉林网站建设哪家有网店运营培训哪里好
  • 网站底部导航制作西点培训
  • 有哪些教育网站做的比较好百度扫一扫
  • 网站与装修公司网站推广公司排名
  • 资产负债表在哪个网站可以做新乡网站优化公司价格
  • 香港集运网站怎么做免费网站推广工具
  • 怎么用.net做网站网站制作优化排名
  • 惠州网站制作哪里好网站建设案例
  • 长沙城乡建设网站首页设计网站模板
  • 网站建设中模板手机制作网站app
  • 下载页面设计图片重庆seo小z博客
  • 什么程序做网站容易优化快速提高网站关键词排名优化
  • 关键词怎么优化到百度首页百度seoo优化软件
  • 怎样做美瞳代购网站360搜索引擎网址
  • wordpress4.9 多站点电商从零基础怎么学
  • wordpress电影主题免费下载需要优化的地方
  • 网站英文版怎么做中文网站排名
  • 做网站需要那些软件seo软件安卓版
  • 如何查网站域名备案seo视频教程百度网盘
  • 装修公司网站建设方案收录好的网站
  • 网站开发实习日记软文范例500字
  • 婚庆公司网站建设方案网络推广关键词优化公司
  • 动漫做a视频网站有哪些营销网站建设创意
  • 手机app制作网站模板站长工具百度
  • 我本沉默传奇新开网站网址最新连接查询