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

floodfill算法系列一>太平洋大西洋水流问题

目录

  • 题目方法解析:
  • 代码设计:
  • 代码呈现:

题目方法解析:

这里是引用

代码设计:

这里是引用

代码呈现:

class Solution {int m,n;int[] dx = {0,0,-1,1};int[] dy = {-1,1,0,0};public List<List<Integer>> pacificAtlantic(int[][] heights) {m = heights.length; n = heights[0].length;boolean[][] pac = new boolean[m][n];boolean[][] atl = new boolean[m][n];//判断大西洋的水能否流到某一位置for(int i = 0; i < n; i++) dfs(heights,0,i,pac);for(int j = 0; j < m; j++) dfs(heights,j,0,pac);//判断太平洋的水能否流到某一位置for(int i = 0; i < m; i++) dfs(heights,i,n-1,atl);for(int j = 0; j < n; j++) dfs(heights,m-1,j,atl);List<List<Integer>> ret = new ArrayList<>();for(int i = 0; i < m; i++)for(int j = 0; j < n; j++){if(pac[i][j] && atl[i][j]){List<Integer> tmp = new ArrayList<>();tmp.add(i); tmp.add(j);ret.add(tmp);}}return ret;}//封装出来一套标记遍历private void dfs(int[][] heights, int i, int j, boolean[][] vis){vis[i][j] = true;for(int k = 0; k < 4; k++){int x = i + dx[k]; int y = j + dy[k];if(x >= 0 && x < m && y >= 0 && y < n && !vis[x][y] && heights[x][y] >= heights[i][j]){dfs(heights,x,y,vis);}}}
}
http://www.lryc.cn/news/537416.html

相关文章:

  • DeepSeek 助力 Vue 开发:打造丝滑的无限滚动(Infinite Scroll)
  • JavaScript 内置对象-Math对象
  • 硕成C语言22【一些算法和数组的概念】
  • Halcon相机标定
  • 部门管理(体验,最原始方法来做,Django+mysql)
  • clickhouse集群搭建
  • 250214-java类集框架
  • 二叉树(C语言版)
  • ASP.NET Core 面试宝典【刷题系列】
  • 案例-02.部门管理-查询
  • src和href区别
  • Java每日精进·45天挑战·Day19
  • 区块链的交易管理和共识机制
  • 最新国内 ChatGPT Plus/Pro 获取教程
  • Apollo 9.0 速度动态规划决策算法 – path time heuristic optimizer
  • Apache Iceberg 与 Apache Hudi:数据湖领域的双雄对决
  • 【LeetCode Hot100 普通数组】最大子数组和、合并区间、旋转数组、除自身以外数组的乘积、缺失的第一个正整数
  • 共享存储-一步一步部署ceph分布式文件系统
  • 19.Python实战:实现对博客文章的点赞系统
  • 【stm32】定时器输出PWM波形(hal库)
  • 当Ollama遇上划词翻译:我的Windows本地AI服务搭建日记
  • Linux上Elasticsearch 集群部署指南
  • 字节Trae使用感想(后端)
  • 国产编辑器EverEdit - 二进制模式下观察Window/Linux/MacOs换行符差异
  • 文心一言4月起全面免费,6月底开源新模型:AI竞争进入新阶段?
  • 解锁机器学习算法 | 线性回归:机器学习的基石
  • 如何使用Three.js制作3D月球与星空效果
  • SQL语句语法
  • github上文件过大无法推送问题
  • 微信小程序的请求函数封装(ts版本,uniapp开发)