全部评论
应该是100,100-4,100-3,100-4,100-5,100-3,100求中间积水量。等做完才发现,
leetcode 接雨水变形体,leetcode原题数组首部插入一个数组中最大值,就是这道题了。
积水问题 class Solution { public: int shui(int L,int W,vector<int> arr) { vector<int> gaodu; for (int a : arr) { gaodu.push_back(10 - a); } for (int a : gaodu) { cout << a << " "; } vector<int> gaodu1(gaodu); gaodu.push_back(0); vector<int> shuimian; for (int i=gaodu.size()-1;i>0;--i) { shuimian.push_back(max(gaodu[i], gaodu[i - 1])); gaodu[i - 1] = max(gaodu[i], gaodu[i - 1]); } reverse(shuimian.begin(), shuimian.end()); for (int a:shuimian) { cout << a << " "; } int sz = shuimian.size() - 1; int shui = 0; while (sz>=0) { shui = shui + (shuimian[sz] - gaodu1[sz])*W; sz--; } return shui; } }; int main() { int W, L; cin >> W >> L; vector<int> arr; for (int i=0;i<L;++i) { int tmp; cin >> tmp; arr.push_back(tmp); } Solution S; int jishui; jishui = S.shui(L, W, arr); cout << endl; cout << jishui << endl; system("pause"); return 0; }
int main() { int W, L; cin >> W; cin >> L; vector<int> H; while (L) { int a; cin >> a; a = 100 - a; H.push_back(a); L--; } int max=H[H.size()-1]; int sum = 0; int base = 1 * 1 * W; for (int i = H.size() - 2; i >= 0; i--) { if (H[i] >= max) { max = H[i]; } else { sum = sum + base * (max - H[i]); } } cout << sum << endl; }
我只a了27,我觉得是深度,4-3 4-3 5-3
我理解:测量是从上向下测,水是从左往右流,因此按照测例来说:因为最深是5,所以把石块高度转换为:1 2 1 0 2 ,然后1左边应该有墙,所以第一个1还能圈住1的水,加上中间2102圈住3,加起来就是4,再乘以宽度(面向测例理解😂)
我醉了,死活算不出那个测试用例给的数值
第二题写出来了吗
我是先把测量深度换算成高度,用100去减。然后倒着dp,算每格后面的最高点。然后每格积水就是最高点减去当格高数乘以宽度。累加每格积水输出。
题目的意思是水流从左往右流,水沟左边是水库且有水,水沟右边没水。 暴力求解:迭代找右侧剩余水沟的最高木块,每次计算当前最高木块与上一轮最高木块之间的储水,迭代终止条件为最高木块位置等于水沟最右端。
相关推荐
10-20 13:02
蚌埠坦克学院 嵌入式软件开发 暴走萝莉莉:这是社招场吧,作为HR说个实话:这个维护关系的意思是要有政府资源,在曾经的工作中通过人脉资源拿下过大订单的意思。这个有相关管理经验,意思也是真的要有同岗位经验。应酬什么的对于业务成交来说就算不乐意也是常态,就是要求说话好听情商高,酒量好。
点赞 评论 收藏
分享
牛客75408465号:笑死,直属领导和 hr 口径都没统一,各自说了一些离谱的被裁理由,你们能不能认真一点呀,哈哈哈哈哈😅😅😅
点赞 评论 收藏
分享