news 2026/4/23 17:42:47

代码随想录 417.太平洋大西洋水流问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
代码随想录 417.太平洋大西洋水流问题

思路:本题的起点(所求答案)不明确,但是终点(上下左右四个边界)明确。所以从边界出发可以更方便地找到答案。

1.边界:heights中的i = 0或者i = m - 1;或者j = 0或者j = n - 1的格子。

2.答案:既可流向太平洋也可流向大西洋的格子。

(1)对于可流向太平洋的格子,从上边界(i = 0)和左边界(j = 0)倒着往高处走,所有能访问到的格子都是可以流向太平洋的格子。

(2)对于可流向大西洋的格子,从下边界(i = m - 1)和右边界(j = n - 1)倒着往高处走,所有能访问到的格子都是可以流向大西洋的格子。

3.计算这两类格子的交集,就是既可流向太平洋也可流向大西洋的格子。

附代码:

class Solution { //左右上下 private static final int[][] DIRS = {{0,-1},{0,1},{-1,0},{1,0}}; public List<List<Integer>> pacificAtlantic(int[][] heights) { int m = heights.length,n = heights[0].length; //从太平洋边界出发 boolean[][] pacificVis = new boolean[m][n]; for(int j = 0;j < n;j++){ dfs(0,j,pacificVis,heights); //上边界 } for(int i = 1;i < m;i++){ dfs(i,0,pacificVis,heights); //左边界,i从1开始是因为(0,0)已经包含在上边界中 } //从大西洋边界出发 boolean[][] atlanticVis = new boolean[m][n]; for(int j = 0;j < n;j++){ dfs(m - 1,j,atlanticVis,heights); //下边界 } for(int i = 0;i < m - 1;i++){ dfs(i,n - 1,atlanticVis,heights); //右边界 最后一列是m - 2是因为(m - 1,n - 1)已经包含在下边界中 } //交集即为答案 List<List<Integer>> res = new ArrayList<>(); for(int i = 0;i < m;i++){ for(int j = 0;j < n;j++){ if(pacificVis[i][j] && atlanticVis[i][j]){ res.add(List.of(i,j)); } } } return res; } private void dfs(int i,int j,boolean[][] vis,int[][] heights){ if(vis[i][j]){ //避免重复访问,避免反复横跳无限递归 return; } vis[i][j] = true; //标记(i,j)已访问 for(int[] d : DIRS){//枚举相邻格子 int x = i + d[0],y = j + d[1]; if(x >= 0 && x < heights.length && y >= 0 && y < heights[x].length && heights[x][y] >= heights[i][j]){ //往高处走 dfs(x,y,vis,heights); } } } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 9:56:29

【URP】Unity[后处理]色差ChromaticAberration

核心功能与用途‌视觉效果‌&#xff1a;在图像高对比度边缘&#xff08;如物体轮廓&#xff09;产生RGB通道分离的彩色条纹&#xff0c;常见红/蓝偏移‌应用场景‌&#xff1a;模拟老旧相机、镜头缺陷的复古风格表现角色醉酒、中毒等特殊状态科幻场景中增强高科技设备的光学畸…

作者头像 李华
网站建设 2026/4/23 11:31:48

智能语音革命:F5-TTS零门槛语音合成实战手册

智能语音革命&#xff1a;F5-TTS零门槛语音合成实战手册 【免费下载链接】F5-TTS Official code for "F5-TTS: A Fairytaler that Fakes Fluent and Faithful Speech with Flow Matching" 项目地址: https://gitcode.com/gh_mirrors/f5/F5-TTS 在人工智能技术…

作者头像 李华
网站建设 2026/4/23 13:00:25

3个V-JEPA实战案例:如何用自监督学习解决视频分析难题

3个V-JEPA实战案例&#xff1a;如何用自监督学习解决视频分析难题 【免费下载链接】jepa 项目地址: https://gitcode.com/GitHub_Trending/je/jepa V-JEPA作为Meta AI推出的自监督视频表征学习框架&#xff0c;正在改变传统视频分析的范式。无需大量标注数据&#xff0…

作者头像 李华
网站建设 2026/4/23 11:35:10

ConvNeXt模型部署指南:5分钟快速搭建现代卷积网络

ConvNeXt模型部署指南&#xff1a;5分钟快速搭建现代卷积网络 【免费下载链接】ConvNeXt Code release for ConvNeXt model 项目地址: https://gitcode.com/gh_mirrors/co/ConvNeXt ConvNeXt是一种完全基于标准卷积模块构建的纯卷积网络模型&#xff0c;在图像识别和深度…

作者头像 李华
网站建设 2026/4/23 11:29:15

专业钢琴采样库:88键高品质WAV音频资源完整指南

专业钢琴采样库&#xff1a;88键高品质WAV音频资源完整指南 【免费下载链接】钢琴88键独立音频文件 本仓库提供了一个名为“钢琴88键独立音频文件.zip”的资源文件&#xff0c;该文件包含了钢琴全部88个音阶的音频文件。每个音阶的录音都被单独保存为一个文件&#xff0c;音频格…

作者头像 李华
网站建设 2026/4/23 11:20:39

还在盲猜理想型?AI 让情感探索更清晰

在情感探索的过程中&#xff0c;很多人都曾陷入 “不知道自己想要什么” 的迷茫&#xff1a;对理想伴侣的想象模糊笼统&#xff0c;缺乏具体认知&#xff1b;凭感觉寻找却屡屡碰壁&#xff0c;浪费时间与精力&#xff1b;难以清晰表达自身情感需求&#xff0c;影响亲密关系建立…

作者头像 李华