Leetcode--11. 盛水最多的容器

给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。

说明:你不能倾斜容器,且 n 的值至少为 2。

图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。

示例:

输入: [1,8,6,2,5,4,8,3,7]
输出: 49

一 暴力解法

public class Solution11 {
    public static int maxArea(int[] height) {
         int i,j,max=0;
         int n = height.length;
         for(i=0;i<n;i++)
         {
             for(j=i;j<n;j++)
             {
                 if((j-i)*java.lang.Math.min(height[i], height[j])>max)
                 {
                     max = (j-i)*java.lang.Math.min(height[i], height[j]);
                 }
             }
         }
         return max;
            
        }
     public static void main(String[] args)
     {
         int[] a = {1,8,6,2,5,4,8,3,7};
         System.out.println(maxArea(a));
     }

}

二 双标记法 

首尾各设置一个标记,每一次的面积都决定于宽度和短柱子的高度,

所以只需要变化短柱子即可。

i,j分别放置于首尾处,如果第一根柱子短,i向后移动一位,否则,j向前移动一位


public class Solution11 {
    
    public static int maxArea(int[] height) {
         int i,j,max=0;
         int n = height.length;
         i=0;j=n-1;
         while(i<j)
         {
             if((j-i)*java.lang.Math.min(height[i], height[j])>max)
             {
                 max = (j-i)*java.lang.Math.min(height[i], height[j]);
             }
             if(height[i]>height[j])
             {
                 j--;
             }
             else
             {
                 i++;
             }
         }
         return max;
            
        }
     public static void main(String[] args)
     {
         int[] a = {1,8,6,2,5,4,8,3,7};
         System.out.println(maxArea(a));
     }
}
 

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

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

相关文章

《城市大脑全球标准研究报告》发布会将于12月23号在北京举办

城市大脑全球标准研究组《城市大脑全球标准研究报告》发布会将于2020年12月23日下午在北京海淀区城市大脑展览厅举办&#xff0c;发布会除了报告发布&#xff0c;智能产业专家演讲&#xff0c;也将参观海淀城市大脑的发展情况。欢迎新闻媒体、科研机构、科技企业、政府部门的记…

java 实现打印条形码_条码打印软件中如何设置条形码下面的字符间距?

条形码有两部分组成&#xff0c;上面是黑白条图案&#xff0c;用于扫描设备的识别&#xff0c;下面是条形码数据&#xff0c;方便在没有扫描设备的情况下可以手动去搜索相关的信息。一般用条码打印软件制作条形码&#xff0c;下面的条形码数据间距是自动生成的&#xff0c;而在…

用跑得最慢的电脑程序,理解最高深的哥德巴赫猜想

五条规则的图灵机可视化。每列像素代表一步计算&#xff0c;步骤从左到右。黑色代表1。最右边表示图灵机的停机。&#xff08;图片来源&#xff1a;Peter Krumins/Quanta Magazine&#xff09;文章来源&#xff1a;环球科学“忙碌的河狸”这个问题的目的是为了找到运行时间最长…

Leetcode--42.接雨水

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图&#xff0c;在这种情况下&#xff0c;可以接 6 个单位的雨水&#xff08;蓝色部分表示雨水&#…

云专网和云专线的区别_传统IDC行业与云计算的区别?

1.传统IDC行业和云计算在服务类型上的区别&#xff1a;传统IDC行业主要是有两种模式&#xff1a;租用和托管租用是自己没有服务器&#xff0c;机房提供服务器、带宽、IP地址、机位、服务器维护等。这种模式是租用。托管是自己购买配置服务器&#xff0c;通过快递、物流等方式把…

计算机插件技术应用原理,计算机软件技术中插件技术的运用

计算机软件技术中插件技术的运用在我国科技水平的不断提升下,计算机软件方面的功能也在持续更新。其中插件技术作为计算机软件中实用性比较强的一项功能,一直被研究分析。下面是小编搜集整理的相关内容的论文&#xff0c;欢迎大家阅读参考。摘要&#xff1a;随着经济和科学技术…

未来30年,这20项技术将颠覆人类生活

来源&#xff1a;嵌入式资讯精选美国公布了一份长达35页的《新兴科技趋势报告》。该报告是在美国过去五年内由政府机构、咨询机构、智囊团、科研机构等发表的32份科技趋势相关研究调查报告的基础上提炼形成的。通过对近700项科技趋势的综合比对分析&#xff0c;最终明确了20项最…

攻克数据库核心技术壁垒,实现百万级QPS的高吞吐

CynosDB是腾讯云自研的新一代高性能高可用的企业级分布式云数据库。融合了传统数据库、云计算与新硬件的优势&#xff0c;100%兼容开源数据库&#xff0c;百万级QPS的高吞吐&#xff0c;不限存储&#xff0c;价格仅为商用数据库的1/10。 CynosDB设计出发点: 随着云计算2.0时代的…

CLion之C++框架篇-安装工具,基础框架的搭建(一)

CLion之C框架篇-安装工具&#xff0c;基础框架的搭建&#xff08;一&#xff09; 背景日常学习C&#xff0c;也就是看看书、在vim里写写代码。在日常项目开发中&#xff0c;也是边看书&#xff08;一是系统性理解、二是找找有什么更好的代码编写方式&#xff09;边写代码&#…

学术评论:“类脑计算完备性(Neuromorphic completeness)”概念定义中的问题

作者&#xff1a;程京德文章出处&#xff1a;程京德科学网博客链接地址&#xff1a;http://blog.sciencenet.cn/blog-2371919-1262267.html 2020年10月&#xff0c;“Nature”杂志发表了清华团队题为“A system hierarchy for brain-inspired computing”的论文 [1]&#xff0c…

你真的了解盒模型么

说到前端, 大家第一反应是不是都是vue、react、webpack等这些大大小小的框架或者工具, 但其实这些都是和js相关的, 真正的样式会被大家忽略。其实真正呈现给大家看到华丽的页面, 都是样式才让他们多了那份色彩。那么大家觉得简单的css样式, 真的简单么? 让我们一起来看下, 开启…

ios10前台收到推送_iOS 13 beta 2 推送 | iOS 13 热门疑问解答

朋友们周二早&#xff0c;今天这期分享主要是给大家解答几个 iOS 13 相关的热门问题。今天的头条推送的是 HFP 的面膜&#xff0c;靠谱产品&#xff0c;有需求的朋友可以去他们的天猫旗舰店或者小程序商场看下。是否可以直接升级 &#xff1f;今天苹果正式推送了 iOS 13 beta 2…

认知科学顶刊:挑战过去50年神经科学观点,人类智力的优势或来自于记忆储存方式...

来源&#xff1a;brainnews莱斯特大学的神经科学专家发表了一篇文章&#xff0c;打破了过去50年神经科学的观点&#xff0c;认为人类储存记忆的方式是其智力优于动物的关键因素。该文章发表在Trends in Cognitive Sciences杂志。先前的研究认为&#xff0c;海马体&#xff08;大…

专业文化计算机艺考生,专业课和文化课都优秀?那艺考生的你不知道这个就损失大了...

原标题&#xff1a;专业课和文化课都优秀&#xff1f;那艺考生的你不知道这个就损失大了高水平艺术团招生作为高考特殊类型招生中的一种&#xff0c;很多人一直把它和艺术类招生傻傻分不清楚。简单来说&#xff0c;高水平艺术团招生和艺术类招生是两种不同的招生类别。详细说&a…

雷赛运动控制卡能不能用c语言_基于PMAC控制卡的三坐标测量机控制系统

三坐标测量机控制原理三坐标测量机获取测头触碰点相对于系统原点的三坐标值&#xff0c;然后经特定算法处理&#xff0c;得到尺寸公差或形位公差。测头在X、Y&#xff0c;Z三个相互垂直的导轨上进行复合运动&#xff0c;实现逐点测量&#xff1b;或按一定运动轨迹&#xff0c;实…

如何结合因果与强化学习?看最新《因果强化学习:动机,概念,挑战与应用》报告,85页ppt...

来源&#xff1a;专知强化学习(RL)[17]和因果推理[10]都是机器学习不可缺少的组成部分&#xff0c;在人工智能中都发挥着至关重要的作用。最初促使我整合这两者的是机器学习在医疗保健和医学领域的最新发展。回顾过去&#xff0c;人类自出生以来就不可避免地伴随着疾病&#xf…

boot druid 长时间不连接 异常_Spring Boot学习:如何使用Druid数据源

Druid概述Druid是阿里巴巴开源的一款非常优秀的数据库连接池。在Java应用程序开发中&#xff0c;常用的连接池还有DBCP、C3P0、Proxool等。SpringBoot2.X 版本开始默认的是HikariCP(号称性能最好的数据库连接池),Druid性能好而且监控也比较方便。刚兴趣的同学可以读一下,GitHub…

演讲实录丨中科大陈小平教授《从封闭性到非封闭性:2020到2035年智能机器的机遇和挑战》...

来源&#xff1a;中国人工智能学会陈小平中国科学技术大学机器人实验室主任、教授以下是陈小平教授的演讲实录&#xff1a;非常高兴有这个机会进行中、新学术交流。本报告包括四方面内容。第一&#xff0c;关于人工智能&#xff08;简称AI&#xff09;的两种类型&#xff0c;一…

充电电流用软件测试准吗,实验:1A与2.1A对手机充电电流一样的,小伙伴再也不用担心咯...

新福克斯舒适&#xff0c;USB在手套箱(不方便啊&#xff0c;郁闷)&#xff0c;插U盘放MP3&#xff0c;一个行车记录仪&#xff0c;插在点烟器里&#xff0c;平时没事也够用&#xff0c;要跑一次长途&#xff0c;用iPhone 5C高德导航&#xff0c;靠&#xff0c;问题来&#…

python 结尾回车_理解不了Python正则表达式?我帮你搞定

点击蓝字“python教程”关注我们哟&#xff01;在学习Python的过程中&#xff0c;我们难免会遇到比较晦涩、难以理解的内容&#xff0c;比如Python中的正则表达式、面向对象等内容&#xff0c;为了更好地帮助大家理解&#xff0c;我们今天就先为大家详细解读Python正则表达式&a…