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

网站建设教程论坛沈阳网站关键词优化哪家好

网站建设教程论坛,沈阳网站关键词优化哪家好,旅游门户网站模板,昆山网站建设网站代码随想录图论 第一天 | 797.所有可能的路径 200. 岛屿数量 一、797.所有可能的路径 题目链接:https://leetcode.cn/problems/all-paths-from-source-to-target/ 思路:求从0到n-1的所有路径,终止条件是当前节点为n-1。本题图的结构是group…

代码随想录图论 第一天 | 797.所有可能的路径 200. 岛屿数量

一、797.所有可能的路径

题目链接:https://leetcode.cn/problems/all-paths-from-source-to-target/
思路:求从0到n-1的所有路径,终止条件是当前节点为n-1。本题图的结构是group[][],group[x]表示x节点所能到达的所有节点的集合,深度优先做本题会一路向下搜索,到头后回溯。

class Solution {List<List<Integer>> arrayLists = new ArrayList<>();List<Integer> list = new ArrayList<>();public List<List<Integer>> allPathsSourceTarget(int[][] graph) {list.add(0);dfs(graph, 0);return arrayLists;}void dfs(int[][] graph, int cur) {if (cur == graph.length-1) {arrayLists.add(new ArrayList<>(list));return;}for (int i = 0; i < graph[cur].length; i++) {list.add(graph[cur][i]);dfs(graph, graph[cur][i]);list.remove(list.size()-1);}}
}

200. 岛屿数量

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

深搜:当前节点为1时岛屿数加1,然后把当前节点设置为0,并从当前节点开始进行上下左右四个方向的深度搜索,只要没越界,不是0,那就是相连的就都设置为0,直到递归结束,然后外层遍历开始寻找下一个为1的岛屿。

class Solution {public int numIslands(char[][] grid) {int num = 0;for (int i = 0; i < grid.length; i++) {for (int j = 0; j < grid[0].length; j++) {if (grid[i][j] == '1') {num++;dfs(grid, i, j);}}}return num;}void dfs(char[][] grid, int x, int y) {if (x < 0 || x >= grid.length || y < 0 || y >= grid[0].length || grid[x][y] == '0'){return;}grid[x][y] = '0';// 按照上下左右四个方向深度优先遍历dfs(grid, x-1, y);dfs(grid, x+1, y);dfs(grid, x, y-1);dfs(grid, x, y+1);}
}

广搜:广度优先需要额外有一个标记数组和队列,如果当前节点未遍历过,且为1,进行广度优先搜索,入队,出队,每个出队节点只搜索4个位置,即当前节点是上下左右,只要没超范围而且是1就可以入队,入队后要进行标记,直到该次广搜结束,岛屿数量加1.

class Solution {// 上下左右int[][] move = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};boolean[][] visited;public int numIslands(char[][] grid) {int num = 0;visited = 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 (!visited[i][j] && grid[i][j] == '1') {bfs(grid, i, j);num++;}}}return num;}void bfs(char[][] grid, int x, int y) {Deque<int[]> queue = new LinkedList<>();queue.offer(new int[]{x, y});visited[x][y] = true;while (!queue.isEmpty()) {int[] cur = queue.poll();int m = cur[0], n = cur[1];for (int i = 0; i < move.length; i++) {int nextX = m + move[i][0];int nextY = n + move[i][1];if (nextX < 0 || nextX >= grid.length || nextY < 0 || nextY >= grid[0].length) continue;if (!visited[nextX][nextY] && grid[nextX][nextY] == '1'){queue.offer(new int[]{nextX, nextY});visited[nextX][nextY] = true;}}}}
}
http://www.dtcms.com/wzjs/835135.html

相关文章:

  • 谷歌广告联盟手机网站免费优化
  • 郑州网站建设技术精粹工程公司名称
  • 哪个网站银锭专业做银锭的计算机应用主要学什么
  • 产品做网站做统计的网站
  • 短连接转换网站开发商城网站建设协议
  • 数据库网站开发外文翻译个人网页介绍
  • 免费网址导航网站建设网站logo如何做清晰
  • 行业门户型网站制作服务器做网站
  • 安徽响应式网站推荐wordpress启用注册
  • 网站建设联系电话快速排名软件案例
  • wordpress The7 v4.4.8深度汉化长春网站优化实战
  • 嘉兴seo网站排名做哪些网站比较赚钱
  • 建设网站的总结大型网站制作公司飞数
  • 网站制作培训速成班后台系统免费模板网站
  • 佛山网站建设佛山网站制作百搜网络科技有限公司
  • 做室内设计兼职的网站自我介绍ppt插图
  • 书店网站建设网站栏目结构淳安网站建设
  • 自己做视频网站 在优酷推广做网站会遇到哪些问题
  • goggle营销型网站效果建筑模板厂家大全
  • 三亚做民宿的都用什么网站网站cms企业
  • 漯河做网站推广网站建设推广有没有
  • 律师在哪个网站做商城网站建设php
  • 宝安做网站多少钱企业微信开通流程
  • 汕头网站制作多少钱东莞商务网站建设
  • 多语言网站开发公司网站 测速度
  • ui设计的细分研究方向包含哪几项网站优化怎么学
  • 网站手绘教程我自己做个网站怎么做
  • 网站建设包括的内容网站开发顶岗报告
  • 广州网站制作公司 番禺建设银行电脑版官方网站
  • 手机网站栏目结构图如何利用js来做网站表单