已知一个m*n的二维数组,数组存储正整数,代表一个个单元的高度(立方体),将这些立方体想象成水槽,问如果下雨这些立方体中会有多少积水。
例如:
[1,4,3,1,3,2],
[3,2,1,3,2,4],
[2,3,3,2,3,1]
积水为4
#include<queue>
#include<stdio.h>
#include<vector>
struct Qitem
{
int x;
int y;
int h;
Qitem(int _x, int _y, int _h) :x(_x), y(_y), h(_h) {
}
};
struct cmp
{
bool operator()(const Qitem& a, const Qitem& b)
{
return a.h > b.h;
}
};
class Solution
{
public:
Solution() {
}
~Solution() {
}
int trapRainWater(std::vector<std::vector<int>>& heightMap)
{
std::priority_queue<Qitem, std::vector<Qitem>, cmp> Q;
if (heightMap.size()<3||heightMap[0].size()<