当前位置: 首页 > 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
}

相关文章:

  • OpenHarmony标准系统mipi摄像头适配
  • EchartJs报表展示
  • 【HarmonyOS】深入理解@Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化
  • 403高效绕过目录扫描工具
  • 《C++魔法:零开销实现抽象工厂模式》
  • ES数据的删除与备份
  • 2024年研究生数学建模“华为杯”E题——肘部法则、k-means聚类、目标检测(python)、ARIMA、逻辑回归、混淆矩阵(附:目标检测代码)
  • 微服务注册中⼼1
  • springboot实战学习(7)(JWT令牌的组成、JWT令牌的使用与验证)
  • Playerprefer类中的方法
  • 【Kubernetes】日志平台EFK+Logstash+Kafka【实战】
  • Vue引入js脚本问题记录(附解决办法)
  • 数据库 - MySQL数据查询
  • ❤Node11-登录人token信息接口
  • 页面禁用鼠标右键属于反爬虫措施吗 ?
  • AHK 中 = 和 == 等比较运算符的用法
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • Linux Process Manage
  • Linux后台研发超实用命令总结
  • node 版本过低
  • Python进阶细节
  • ReactNativeweexDeviceOne对比
  • springMvc学习笔记(2)
  • Transformer-XL: Unleashing the Potential of Attention Models
  • 复杂数据处理
  • 坑!为什么View.startAnimation不起作用?
  • 力扣(LeetCode)965
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 通过npm或yarn自动生成vue组件
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • ionic异常记录
  • k8s使用glusterfs实现动态持久化存储
  • 积累各种好的链接
  • 昨天1024程序员节,我故意写了个死循环~
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #pragam once 和 #ifndef 预编译头
  • #ubuntu# #git# repository git config --global --add safe.directory
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (附源码)计算机毕业设计ssm电影分享网站
  • (四)进入MySQL 【事务】
  • (一)认识微服务
  • (源码分析)springsecurity认证授权
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)负载均衡,回话保持,cookie
  • .FileZilla的使用和主动模式被动模式介绍
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .NET Core 中的路径问题
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .net解析传过来的xml_DOM4J解析XML文件
  • [ vulhub漏洞复现篇 ] ThinkPHP 5.0.23-Rce
  • [<死锁专题>]
  • [20170705]lsnrctl status LISTENER_SCAN1
  • [383] 赎金信 js