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

Golang | Leetcode Golang题解之第417题太平洋大西洋水流问题

题目:

题解:

type pair struct{ x, y int }
var dirs = []pair{{-1, 0}, {1, 0}, {0, -1}, {0, 1}}func pacificAtlantic(heights [][]int) (ans [][]int) {m, n := len(heights), len(heights[0])pacific := make([][]bool, m)atlantic := make([][]bool, m)for i := range pacific {pacific[i] = make([]bool, n)atlantic[i] = make([]bool, n)}bfs := func(x, y int, ocean [][]bool) {if ocean[x][y] {return}ocean[x][y] = trueq := []pair{{x, y}}for len(q) > 0 {p := q[0]q = q[1:]for _, d := range dirs {if x, y := p.x+d.x, p.y+d.y; 0 <= x && x < m && 0 <= y && y < n && !ocean[x][y] && heights[x][y] >= heights[p.x][p.y] {ocean[x][y] = trueq = append(q, pair{x, y})}}}}for i := 0; i < m; i++ {bfs(i, 0, pacific)}for j := 1; j < n; j++ {bfs(0, j, pacific)}for i := 0; i < m; i++ {bfs(i, n-1, atlantic)}for j := 0; j < n-1; j++ {bfs(m-1, j, atlantic)}for i, row := range pacific {for j, ok := range row {if ok && atlantic[i][j] {ans = append(ans, []int{i, j})}}}return
}

http://www.mrgr.cn/news/30662.html

相关文章:

  • 如何在 Ubuntu 22.04 上安装 ownCloud
  • 【api】java和python联动
  • 时序预测 | 改进图卷积+informer时间序列预测,pytorch架构
  • 【蓝桥等考C++真题】蓝桥杯等级考试C++组第13级L13真题原题(含答案)-最大的数
  • 【菜笔cf刷题日常-1400】C. RationalLee(贪心)
  • Vue3配置内网ip访问的方法
  • 视觉 注意力机制——通道注意力、空间注意力、自注意力、交叉注意力
  • C# 访问Access存取图片
  • 软件安全最佳实践:首先关注的地方
  • 【macOS】【Python】安装Python到虚拟环境的命令
  • 版本控制之Git
  • 电力施工作业安全行为检测图像数据集
  • 算法打卡 Day41(动态规划)-理论基础 + 斐波那契数 + 爬楼梯 + 使用最小花费爬楼梯
  • MATLAB矩阵下标引用
  • 图数据库之HugeGraph
  • 深度学习笔记(8)预训练模型
  • Linux文件系统
  • 8.1差分边缘检测
  • 介绍几个AI生成视频的工具
  • 新发布的OpenAI o1生成式AI模型在强化学习方面迈出了重要的一步
  • iptables 基础示例
  • 电脑维修的基本原则
  • AI助力智慧农田作物病虫害监测,基于YOLOv8全系列【n/s/m/l/x】参数模型开发构建花田作物种植场景下棉花作物常见病虫害检测识别系统
  • 【ShuQiHere】 从逻辑门到组合电路:构建数字系统的核心
  • Python习题 192:编写一个猜单词游戏
  • 算法打卡 Day34(贪心算法)-分发饼干 + 摆动序列 + 最大子序和