407. 接雨水 II

简介: 文章目录前言解题思路代码前言给你一个 m x n 的矩阵,其中的值均为非负整数,代表二维高度图每个单元的高度,请计算图中形状最多能接多少体积的雨水。

文章目录

前言

解题思路

代码

前言

给你一个 m x n 的矩阵,其中的值均为非负整数,代表二维高度图每个单元的高度,请计算图中形状最多能接多少体积的雨水。


Interlaken Protocol白皮书(中文)

pdf


0星

超过10%的资源

851KB


下载

输入: heightMap = [[1,4,3,1,3,2],[3,2,1,3,2,4],[2,3,3,2,3,1]]

输出: 4

解释: 下雨后,雨水将会被上图蓝色的方块中。总的接雨水量为1+2+1=4。


来源:力扣(LeetCode)

链接:https://leetcode.cn/problems/trapping-rain-water-ii

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


解题思路


如图,里面的水全部都能接住


最外层都放入小根堆内


弹出4,以4为瓶颈,如果里面旁边的数小于4,那证明能接住

如果大于4,那么水就会从缺口流出


弹出3,现在还是4为瓶颈,看看附近能接多少水


只要max不更新,都是max的可以接水的区域

max更新的情况:

弹出的元素比max大


代码

class Solution {

   public static class Node{

       public int value;

       public int row;

       public int col;

       public Node(int v,int r,int c){

           value=v;

           row = r;

  col = c;

       }

   }

   public int trapRainWater(int[][] heightMap) {

       if (heightMap == null || heightMap.length == 0 || heightMap[0] == null || heightMap[0].length == 0) {

  return 0;

 }

       int n=heightMap.length;

       int m=heightMap[0].length;

       boolean[][] isEnter = new boolean[n][m];

       PriorityQueue<Node> heap=new PriorityQueue<Node>((a,b)->a.value-b.value);

       for(int i=1;i<n-1;i++){

           heap.add(new Node(heightMap[i][0],i,0));

           isEnter[i][0]=true;

           heap.add(new Node(heightMap[i][m-1],i,m-1));

           isEnter[i][m-1]=true;

       }

       for(int i=0;i<m;i++){

           heap.add(new Node(heightMap[0][i],0,i));

           isEnter[0][i]=true;

           heap.add(new Node(heightMap[n-1][i],n-1,i));

           isEnter[n-1][i]=true;

       }

       int water=0;

       int max=0;

       while(!heap.isEmpty()){

           Node node=heap.poll();

           max=Math.max(max,node.value);

           int r=node.row;

           int c=node.col;

           if(r>0&&!isEnter[r-1][c]){

               isEnter[r-1][c]=true;

               water+=Math.max(0,max-heightMap[r-1][c]);

               heap.add(new Node(heightMap[r-1][c],r-1,c));

           }

           if(r<n-1&&!isEnter[r+1][c]){

               isEnter[r+1][c]=true;

               water+=Math.max(0,max-heightMap[r+1][c]);

               heap.add(new Node(heightMap[r+1][c],r+1,c));

           }

           if(c>0&&!isEnter[r][c-1]){

               isEnter[r][c-1]=true;

               water+=Math.max(0,max-heightMap[r][c-1]);

               heap.add(new Node(heightMap[r][c-1],r,c-1));

           }

           if(c<m-1&&!isEnter[r][c+1]){

               isEnter[r][c+1]=true;

               water+=Math.max(0,max-heightMap[r][c+1]);

               heap.add(new Node(heightMap[r][c+1],r,c+1));

           }

       }

       return water;

   }

}


目录
相关文章
|
安全 数据安全/隐私保护 芯片
简单认识加扰与解扰
简单认识加扰与解扰
649 0
|
安全 网络安全
网络漏洞
指硬件、软件或策略上的缺陷,这种缺陷导致非法用户 未经授权而获得访问系统的权限或提高其访问权限。有了这种访问权限,非法用户就可以为所欲为,从而造成对网络安全的威胁。 区别于后门。后门:是软硬件制造者为了进行非授权访问而在程序中故意设置的万能访问口令,这些口令无论是被攻破,还是只掌握在制造者手中,都对使用者的系统安全构成严重的威胁。 漏洞与后门是不同的,漏洞是难以预知的,后门则是人为故意设置的。
|
10月前
|
人工智能 编解码 文字识别
视觉理解模型Qwen2.5-VL开源,斩获多榜单冠军!
视觉理解模型Qwen2.5-VL开源,斩获多榜单冠军!
858 0
|
供应链 安全 大数据
什么是关键信息基础设施及其安全保护条例?
关键信息基础设施是国家的重要战略资源,涉及到国家的主权、安全和发展利益。这些设施在国家经济和社会服务中承担着重要角色,其安全稳定运行直接关系到国家安全和经济社会健康发展。让我们一起来了解一下什么是关键信息基础设施及其安全保护条例。
390 0
|
机器学习/深度学习 人工智能 文字识别
多模态产品在智能文档处理应用的展望------以TextIn模型为例
**第十四届VALSE大会在重庆举行,合合信息智能创新事业部研发总监常扬分享了“文档解析与向量化技术”,重点介绍TextIn技术。TextIn解决现有文档解析挑战,如表格解析难题,建立包含数据基建、算法、应用和接入四层架构的文档解析Pipeline。关键技术包括版面分析和文档树引擎,能准确识别文档结构和阅读顺序。TextIn在C-MTEB榜单排名第一,显示其在文本向量化领域的优势,适用于长文档处理和多行业应用,有望推动AI技术进步和产业升级。**
468 1
|
人工智能 自然语言处理 云计算
软件开发的最新趋势和未来展望
软件开发领域正处于快速发展的阶段,不断涌现出新的技术和方法。从人工智能、云计算到低代码开发,这些趋势都在推动着软件开发的革新和创新。未来,随着技术的不断进步,我们可以期待更多令人激动的变革和机遇。无论是开发者还是业务,都应该保持敏锐的洞察力,及时采纳新技术,以适应不断变化的软件开发领域。
软件开发的最新趋势和未来展望
|
存储 弹性计算 安全
阿里云电脑无影怎么使用?无影云电脑使用方法介绍
阿里云电脑无影怎么使用?无影云电脑使用方法介绍
1586 1
|
Ubuntu Java 机器人
GPT3.5接入企业微信,可连续对话
小伙伴们,之前接的GPT接口都是3.0,并不是真正的GPT。废话少说,先来看看效果,这次最大的不同是能连续对话了
545 0
GPT3.5接入企业微信,可连续对话
|
存储 前端开发 JavaScript
区块链交易所系统开发(正式版)丨DEX/DEFI/SWAP去中心化智能合约系统开发详细案例/方案项目/技术分析/源码功能
  去中心化存储技术是一种新型存储技术,它改变了传统的集中式存储技术,将数据从单一位置移到多个位置,这样就消除了存储数据的中心机构或服务器的责任,增加了安全性和数据的有效存储,确保用户的数据安全性。

热门文章

最新文章