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

lintcode 1410 · 矩阵注水【BFS 中等 vip】

题目链接,描述

https://www.lintcode.com/problem/1410

给一个二维矩阵,每个grid的值代表地势的高度。水流只会沿上下左右流动,且必须从地势高的地方流向地势低的地方。视为矩阵四面环水,现在从(R,C)处注水,问水能否流到矩阵外面去?输入的矩阵大小为n x n ,n <= 200。
保证每个高度均为正整数。
样例
样例1输入: 
mat =
[[10,18,13],[9,8,7],[1,2,3]
] and R = 1, C = 1
输出: "YES"
解释: 
(1,1)(1,2)→ 流出。
样例2输入: 
mat = 
[[10,18,13],[9,7,8],[1,11,3]
] and R = 1, C = 1
输出: "NO"
解释:(1,1)无法流向任何其他格点,故无法流出去。

思路

前置知识:BFS,Queue

参考代码

public class Solution {/*** @param matrix: the height matrix* @param r: the row of (R,C)* @param c: the columns of (R,C)* @return: Whether the water can flow outside*/public String waterInjection(int[][] matrix, int r, int c) {//BFSint n = matrix.length,m=matrix[0].length;Queue<int[]> queue = new LinkedList<>();queue.add(new int[]{r,c});int[][] dirs = {{-1,0},{1,0},{0,-1},{0,1}};while (!queue.isEmpty()){int[] poll = queue.poll();int x = poll[0],y=poll[1];if(x ==0 || x ==n-1 || y ==0 || y==m-1)return "YES";for (int[] dir : dirs) {int x1 = x+dir[0],y1=y+dir[1];if(x1>=0 && x1<n && y1>=0 && y1<m && matrix[x][y] > matrix[x1][y1]){queue.add(new int[]{x1,y1});}}}return "NO";}
}
http://www.lryc.cn/news/157834.html

相关文章:

  • 软件架构设计(十) 架构评估(复审)-方法论
  • SQL注入案例
  • lv3 嵌入式开发-5 linux shell命令(进程管理、用户管理)
  • 学习Bootstrap 5的第六天
  • 攻防世界-WEB-NewsCenter
  • vue router 路由跳转获取不到参数
  • 将 Llama2 中文模型接入 FastGPT,再将 FastGPT 接入任意 GPT 套壳应用,真刺激!
  • Ubuntu之apt-get系列--apt-get安装软件的方法/教程
  • redux的理解
  • 【Java】Java 多线程的应用场景
  • Mysql--技术文档--索引-《索引为什么查找数据快?》-超底层详细说明索引
  • jmeter 接口快速创建
  • docker 笔记10:Docker轻量级可视化工具Portainer
  • 028:vue上传解析excel文件,列表中输出内容
  • 在VR全景中嵌入3D模型有哪些优势?
  • c高级day2 linux指令的补充和shell脚本
  • Rabbitmq 常见问题处理
  • 人工智能和大数据:跨境电商如何实现定制化营销?
  • 博物馆网上展厅有哪些用途,如何搭建数字时代的文化宝库
  • shiro反序列化漏洞
  • 无需公网IP,实现外网远程访问管家婆ERP进销存系统的方法
  • C#,《小白学程序》第十三课:阶乘(Factorial)的计算方法与代码
  • 以antd为例 React+Typescript 引入第三方UI库
  • matlab如何遍历文件夹及子文件夹下的所有文件
  • Win11怎么显示隐藏文件
  • Golang专题精进
  • 手游联运平台都具备哪些功能?
  • 98. 验证二叉搜索树
  • Stream API
  • 手写Spring:第3章-实现Bean的定义、注册、获取