牛客题霸 [容器盛水问题] C++题解/答案

题目描述

给定一个整形数组arr,已知其中所有的值都是非负的,将这个数组看作一个容器,请返回容器能装多少水。
具体请参考样例解释

题解:

我们找出容器的左右边界,选择边界更低的,可以采用双指针,分别从两端向中间扫描,如果里面的高度高于边界就不能盛水,更新边界为当前高度,如果小于边界就可以盛水,记录答案

代码:

class Solution {public:/*** max water* @param arr int整型vector the array* @return long长整型*/long long maxWater(vector<int>& arr) {// write code hereif(arr.size()<=2)return 0;int l=0,r=arr.size()-1;int L=arr[l];int R=arr[r];long long maxx=0;while(l<r){if(L<R){l++;if(arr[l]>=L){L=arr[l];continue;}maxx+=(L-arr[l]);}else {r--;if(arr[r]>R){R=arr[r];continue;}maxx+=(R-arr[r]);}}return maxx;}
};

牛客题霸 [容器盛水问题] C++题解/答案相关推荐

  1. 牛客题霸 [子数组最大乘积] C++题解/答案

    牛客题霸 [子数组最大乘积] C++题解/答案 题目描述 给定一个double类型的数组arr,其中的元素可正可负可0,返回子数组累乘的最大乘积. 题解: 同时记录最大值和最小值,为什么?因为给的元素 ...

  2. 牛客题霸 [滑动窗口的最大值] C++题解/答案

    牛客题霸 [滑动窗口的最大值] C++题解/答案 题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值.例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一 ...

  3. 牛客题霸 [最长重复子串] C++题解/答案

    牛客题霸 [最长重复子串] C++题解/答案 题目描述 一个重复字符串是由两个相同的字符串首尾拼接而成,例如abcabc便是长度为6的一个重复字符串,而abcba则不存在重复字符串. 给定一个字符串, ...

  4. 牛客题霸 [ 集合的所有子集] C++题解/答案

    牛客题霸 [ 集合的所有子集] C++题解/答案 题目描述 现在有一个没有重复元素的整数集合S,求S的所有子集 注意: 你给出的子集中的元素必须按升序排列 给出的解集中不能出现重复的元素 题解: 先s ...

  5. 牛客题霸 [ 最小的K个数] C++题解/答案

    牛客题霸 [ 最小的K个数] C++题解/答案 题目描述 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4. 题解: 如果有n&l ...

  6. 牛客题霸 [最长公共子序列] C++题解/答案

    牛客题霸 [最长公共子序列] C++题解/答案 题目描述 给定两个字符串str1和str2,输出连个字符串的最长公共子序列.如过最长公共子序列为空,则输出-1. 题解: dp经典问题 代码: clas ...

  7. 牛客题霸 [ 最长递增子序列] C++题解/答案

    牛客题霸 [ 最长递增子序列] C++题解/答案 题目描述 给定数组arr,设长度为n,输出arr的最长递增子序列.(如果有多个答案,请输出其中字典序最小的) 题意: 直接暴力会超时 应该用二分+贪心 ...

  8. 牛客题霸 [寻找第K大] C++题解/答案

    牛客题霸 [寻找第K大] C++题解/答案 题目描述 有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数. 给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的 ...

  9. 牛客题霸 [最长公共子串]C++题解/答案

    牛客题霸 [最长公共子串]C++题解/答案 题目描述 给定两个字符串str1和str2,输出两个字符串的最长公共子串,如果最长公共子串为空,输出-1 题解: lcs模板 代码: class Solut ...

最新文章

  1. Substring with Concatenation of All Words
  2. Pandas的学习(读取mongodb数据库集合到DataFrame,将DataFrame类型数据保存到mongodb数据库中)
  3. 企业实战_24_MyCat实现读写分离
  4. ntce服务器不稳定,当心!你的教师资格证成绩失效了!| 服务
  5. php电子商务模板,关于php:电商系统设计之运费模板下
  6. 5.1.2 云计算的定义
  7. 华为、小米和OPPO将采用联发科最新5G SoC天玑720
  8. 「镁客早报」传SpaceX计划展开7.5亿美元贷款融资;LG开始为苹果生产OLED面板
  9. 苹果证实将弃用Windows版QuickTime
  10. 程序员必修课--sql思维举重训练
  11. IOS开发学习----给表视图设置缩进级别
  12. Thinking in Java 14.3.3递归计数
  13. opencv摄像头拍摄视频并保存方法
  14. Properties和ResourceBundle类
  15. SecureCrt中文破解版直接下载使用免破解免安装并解决中文乱码问题
  16. Nginx 412 Precondition Failed
  17. 如何将mov格式转换成mp4并且不改变分辨率
  18. javascript飞机大战
  19. P5960 【模板】差分约束算法 · spfa
  20. 微信小程序之——实现一行滑动显示很多文字-scroll-view

热门文章

  1. 你爱我吗? | 今日最佳
  2. php生成vcf,详解PHP如何实现生成vcf vcard文件
  3. 抓取手机https_python爬虫入门02:教你通过 Fiddler 进行手机抓包
  4. jpa 定义中间表实体_Spring Data JPA实体详解
  5. 计算机在学前教育和美术绘画中的应用,幼儿园美术教学活动中信息技术的应用...
  6. 支持向量回归代码_RDKit:基于支持向量回归(SVR)预测logP
  7. c语言程序设计黄保和第二章,C语言程序设计答案(黄保和编)第6章
  8. idea怎么把代码放到git_在IDEA中如何初始化Git,把项目推送到Git上
  9. html中的时间代码怎么写,html网页代码中的时间样式怎样设置
  10. C++ vector容器中用erase函数和迭代器删除重复元素问题分析