container-with-most-water(最大蓄水问题)

题目描述:

Given n non-negative integers a1 , a2 , ..., an , where each represents a point at coordinate (i, ai ). n vertical lines are drawn such that the two endpoints of line i is at (i, ai ) and (i, 0). Find two lines, which together with x-axis forms a container, such that the container contains the most water.
Note: You may not slant the container.

给定n个非负整数a1,a2,...,an,其中每个代表坐标(i,ai)处的一个点。 绘制n条垂直线,使得线i的两个端点处于(i,ai)和(i,0)处。 找到两条线,它们与x轴一起形成一个容器,以使容器包含最多的水。
注意:您不得倾斜容器。

 

/** 贪心算法:从两边开始向中间缩小;每一步比较左右边界高度,高度小的那个向里走一步* * 这个贪心算法,为什么最优解不会被错过?         反证法 假设会被错过。*         假设最优解是横坐标为x1,x2(x2在右边)的这两个点组成的*               只考虑扫描到x2时,x1被错过的情况(x2被错过同理):*         被错过指的是 当右指针向左扫描经过x2之后,左指针还在x1的左边P处时,x1被错过。* *                     情况一   x2>p:  x2会被保留,然后左指针向右移动到x1,x1不会被错过*                     情况二   x2<p:  小情况一:height[p]>height[x1]    则最优解为 p,x2而不是 x1,x2。  假设不成立*                                   小情况二:p<=x1  最优解还是p,x2。 假设不成立*                             //因为x2比p和x1都小,所以容器高度取决于x2,而p比x1偏左,所以p,x2比x1,x2面积大*                         *        */public int maxArea(int[] height) {if(height.length<=2) return 0;int left=0,right=height.length-1;int maxArea=0;while(left<right) {int area = Math.min(height[left],height[right])*(right-left);maxArea = Math.max(maxArea, area);if(height[left]<=height[right]) {left++;}else {right--;}}return maxArea;}

 

转载于:https://www.cnblogs.com/whu-gbf/p/9173582.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570739.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用sqoop从Oracle或mysql抽取数据到HDFS遇到的报错及解决

一、参考文档&#xff1a; 1、https://www.rittmanmead.com/blog/2014/03/using-sqoop-for-loading-oracle-data-into-hadoop-on-the-bigdatalite-vm/ 2、http://www.cnblogs.com/bjtu-leefon/archive/2013/06/28/3160549.html 二、使用脚本 ----sqoop import zdsd 使用注…

POJ1426-Find The Multiple(DFS)

给出一个整数n&#xff0c;(1 < n < 200)。求出任意一个它的倍数m&#xff0c;要求m必须只由十进制的0或1组成。 #include <iostream>using namespace std;int N,flag;void DFS(int m,long long n) {if(m19) return;if(flag) return;if(n%N0){flag1;cout<<n&…

Spark集群,多个版本Python/Python Package管理

文章转载自&#xff1a;http://blog.csdn.net/gongbi917/article/details/52369025 仅用于个人学习备忘收藏&#xff0c;转载请注明原文地址 进年来&#xff0c;越来越多的数据科学家、分析人员、数据工程师运用Python语言进行数据分析和机器学习。Spark在0.7版本开始支持Pyth…

【网络流24题】【LOJ6224】深海机器人问题(最大费用最大流)

problem 给定一个n*m的网格&#xff0c;每条边上有一个权值给定每个机器人的出发位置和目标位置求权值最大solution 拆边&#xff0c;每条边拆成2条&#xff0c;第一条容量1&#xff0c;费用c[i]&#xff0c;第二条容量inf,费用0&#xff1b;建超级源汇&#xff08;s到每个出发…

Oracle创建表空间、用户、分配权限、导出、导入数据

文章转载&#xff1a;https://segmentfault.com/a/1190000006704150 仅用于个人学习、收藏自查&#xff0c;谢谢原作者。 以系统管理员登录&#xff0c;命令&#xff1a;sqlplus / as sysdba #首先需要 su - oracle 进入到oracle用户下 一、分为四步 /第1步&#xff1a;创…

函数简介

一、函数 函数就是一个功能&#xff0c;一个方法&#xff0c;简化代码。#一个函数只做一件事#重复的代码就是低级的#实现同样的功能&#xff0c;代码越少越好 函数必须得调用才能执行。 1、函数的简单介绍&#xff0c;如下 1 def say(name):# 函数&#xff0c;形参&#xff0c;…

ORA-65096: 公用用户名或角色名无效引发的思考

解决方式&#xff1a; alter session set "_ORACLE_SCRIPT"true; alter session set containerPDBORCL;原因&#xff1a;查官方文档得知“试图创建一个通用用户&#xff0c;必需要用C##或者c##开头”&#xff0c;这时候心里会有疑问&#xff0c;什么是common user&am…

VS封装给Unity使用的DLL

首先: 注意两点,一个是选择3.5,Unity最高支持到3.5 然后要选择第二个FrameWork类库 第一个会报错 然后导入Unity dll 我Unity安装在F:\AppLicationWorkSpace\Unity5.6.2\Unity\Editor\Data\Managed 用哪个导入哪个 然后生成 Ok 把生成的DLL放到Unity里就可以使用了 继续写…

ftp与sftp及sftp和scp的区别

FTP VS SFTP FTP是文件传输协议。在网站上&#xff0c;如果你想把文件和人共享&#xff0c;最便捷的方式莫过于把文件上传到FTP服务器上&#xff0c;其他人通过FTP客户端程序来下载所需要的文件。 FTP进行文件传输需要通过端口进行。一般所需端口为&#xff1a; 1. 控制链路—T…

Kong API Gateway部署手册----安装

文章转载&#xff1a;http://www.nxops.cn/post/97.html

Linux系统下面crontab选择默认编译器

crontab修改默认编辑器crontab默认编辑器为nano.修改crontab默认编辑器为vi或者其他的编辑器。法一&#xff1a;export EDITOR"/usr/bin/vim" ; crontab -e法二&#xff1a;&#xff08;一般我用这方法&#xff0c;简单方便&#xff0c;选3&#xff09;执行命令&…

hawq state 报错: the database is down, but Ambari shows all hawq services as being

此问题官方有给出解决方案&#xff1a;https://discuss.pivotal.io/hc/en-us/articles/221826748-Pivotal-HDB-state-indicates-the-database-is-down-but-Ambari-shows-all-Pivotal-HDB-services-as-being-up Environment ProductVersionPivotal HDB (HAWQ)2.x Symptom Piv…

OpenLayer学习之矢量地图

一、首先了解下矢量地图和栅格地图 矢量图使用直线和曲线来描述图形&#xff0c;这些图形的元素是一些点、线、矩形、多边形、圆和弧线等等&#xff0c;矢量地图放大和缩小不会失真&#xff08;图片你要是放大一定程度明显可以看出一个一个小格→栅格地图的缺点&#xff09;。为…

Extra Data after Last Expected Column:hawq建外表load数据报错

背景&#xff1a;使用sqoop import 才oracle抽数据入HDFS后&#xff0c;通过pxf建立hawq外表&#xff0c;查询数据报错 解决思路&#xff1a;1、从报错上看应该是数据源分割后字段数比目标表字段多&#xff0c;且pgadmin3里报错还出现源数据异常的一条记录&#xff0c;去源头o…

上下文信息 RpcContext

上下文中存放的是当前调用过程中所需的环境信息。所有配置信息都将转换为 URL 的参数&#xff0c;参见 schema 配置参考手册 中的对应URL参数一列。 RpcContext 是一个 ThreadLocal 的临时状态记录器&#xff0c;当接收到 RPC 请求&#xff0c;或发起 RPC 请求时&#xff0c;Rp…

new malloc

https://blog.csdn.net/happyxieqiang/article/details/50775847 0. 属性 new/delete是C关键字&#xff0c;需要编译器支持。malloc/free是库函数&#xff0c;需要头文件支持。 1. 参数 使用new操作符申请内存分配时无须指定内存块的大小&#xff0c;编译器会根据类…

pip install scrpy 报错: command 'gcc' failed with exit status 1

报错如下&#xff1a; copying src/twisted/words/xish/xpathparser.g -> build/lib.linux-x86_64-2.7/twisted/words/xish running build_ext building twisted.test.raiser extension creating build/temp.linux-x86_64-2.7 creating build/temp.linux-x86_64-2.7/src cr…

Codeforces 990E Post Lamps 【暴力】【贪心】

虽然只是10^6的数据量&#xff0c;但用cin会tle。一直知道cin常数大&#xff0c;但没想到会是10^2这个级别。 我们枚举每个power的lamp&#xff0c;然后对每个power用平均logn的代价去求它的cost&#xff0c;最后取最小值 对于每个power&#xff0c;我们从左往右地去照亮整个区…

[Luogu 2486] SDOI2011 染色

[Luogu 2486] SDOI2011 染色 树剖水题&#xff0c;线段树维护。 详细题解不写了。 我只想说我写的线段树又变漂亮了qwq #include <algorithm> #include <cstdio> #include <cstring> const int MAXN100010; int n,m; class HLD {private:bool vis[MAXN];int …

完全卸载HDP和Ambari

文章转载自&#xff1a;https://imaidata.github.io/blog/uninstall_hdp_ambari/ 用于个人学习、备查&#xff0c;转载请注明原作者。 简介&#xff1a; 在不需要重装操作系统的情况下完全卸载HDP&#xff0c;并准备好自动安装HDP2.6的环境。 文章&#xff1a; 升级HDP失败…