旧题重问。。。

clown.. 2016-01-18 10:28:48
刚刚在精华区看到这样一帖。。 刚看csdn论坛,于是想到大四时听同学说了这么一道题,当时做了几天没搞出来,题目意思如下: 给你一个二维数组(比如是M*N的),把他们放入M*N的方格中,每个数字代表该方格的高度,这样就俯视就会形成凹凸不平,如果用这个形状存储水,凹的地方会有积水,请问它能存储多少水? 例如二维数组为: 9 9 9 9 3 0 0 9 7 8 9 6 时,答案是中间的0,0位置可以存储3(因为其外面最低是3,即“木桶效应”)个单位的水,因此答案为3+3=6 我想知道这样解行么 既然是装水。。那就把它装满水。让它流。找出数组中的最大数max。这个数乘数组元素个数得到总量。;从最外圈开始比较。比它小全减掉。再找里面一圈。每个元素元素i与它相邻的三个外圈元素中最小的比较。。比它大就max-i。比它小。就按最外面的减。。依次往中间比较。。总量减掉流掉的。就是可装的。。估计有我想不到的情况。希望大牛指出
...全文
133 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
姜小白- 2016-01-18
  • 打赏
  • 举报
回复
clown.. 2016-01-18
  • 打赏
  • 举报
回复
我错了。此帖终结
clown.. 2016-01-18
  • 打赏
  • 举报
回复
ps: 说的是比最大值小。。
iphilip 2016-01-18
  • 打赏
  • 举报
回复
楼主结贴,希望能给点分!
解开者 2016-01-18
  • 打赏
  • 举报
回复
引用 4 楼 FredSuvn 的回复:
每个格子和周围的比大小,不是最小的就没水,有最小的如果有并列则递归算并列的那个,如果是最小的且唯一则计算第二小减最小的是储存量,算完标记周围都不可能存水。 楼主当真几天不会?
这不妥,不是最小的也可能有水。 3 3 3 3 3 2 1 3 3 3 3 3 实际上只有外边这一圈是轮廓,可以在外边再套一圈0来理解。并且中间可能有不止一个坑
  • 打赏
  • 举报
回复
FredSuvn 2016-01-18
  • 打赏
  • 举报
回复
每个格子和周围的比大小,不是最小的就没水,有最小的如果有并列则递归算并列的那个,如果是最小的且唯一则计算第二小减最小的是储存量,算完标记周围都不可能存水。 楼主当真几天不会?

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧