html门户网站开发源代码,网站建设端口,24小时自助平台业务下单,电商网站开发fd牛客题霸 [容器盛水问题] C题解/答案
题目描述
给定一个整形数组arr#xff0c;已知其中所有的值都是非负的#xff0c;将这个数组看作一个容器#xff0c;请返回容器能装多少水。 具体请参考样例解释
题解#xff1a;
我们找出容器的左右边界#xff0c;选择边界更低…牛客题霸 [容器盛水问题] C题解/答案
题目描述
给定一个整形数组arr已知其中所有的值都是非负的将这个数组看作一个容器请返回容器能装多少水。 具体请参考样例解释
题解
我们找出容器的左右边界选择边界更低的可以采用双指针分别从两端向中间扫描如果里面的高度高于边界就不能盛水更新边界为当前高度如果小于边界就可以盛水记录答案
代码
class Solution {
public:/*** max water* param arr int整型vector the array* return long长整型*/long long maxWater(vectorint arr) {// write code hereif(arr.size()2)return 0;int l0,rarr.size()-1;int Larr[l];int Rarr[r];long long maxx0;while(lr){if(LR){l;if(arr[l]L){Larr[l];continue;}maxx(L-arr[l]);}else {r--;if(arr[r]R){Rarr[r];continue;}maxx(R-arr[r]);}}return maxx;}
};