【Leetcode】11. Container With Most Water 数列中选两个值使得中间的面积最大

news/2023/12/1 11:35:04 标签: 数据结构与算法

1. 题目

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.

2. 思路

从最两头向中间步进。当计算[i,j]范围后,下一步推进i,j小的那一个。记录下每次的容量,选出最大的。
cont(i, j) = min{len(i), len(j)}*(j - i);
if len(i) < len(j), 则可知已i为起点的情况下,如果推进j一定比当前的小。且>j的坐标的len一定比len j小,因为每一步的推进min(len i, len j)都是非递减的。

3. 代码

耗时:26ms

class Solution {
public:
    int maxArea(vector<int>& height) {
        int cap = 0;
        int left = 0;
        int right = height.size() - 1;
        while (left < right) {
            int cur = (right - left) * (height[left] < height[right] ? height[left] : height[right]);
            if (cur > cap) {
                cap = cur;
            }
            if (height[left] < height[right]) {
                left++;
            } else {
                right--;
            }
        }
        return cap;   
    }
};

http://www.niftyadmin.cn/n/1577086.html

相关文章

Single Image Haze Removal Using Dark Channel Prior翻译

这段时间在回顾以前做的去雾&#xff0c;顺便就把这篇文章翻译了一下&#xff0c;看看有没有同行交流。由于是用LaTex排版的&#xff0c;所以只能转为图片传上来了。另外&#xff0c;英语水平有限&#xff0c;大部分都是靠词典&#xff0c;所以只能勉强着看了。

J2EE、JavaSE、JavaEE、JavaME区别

目前&#xff0c;java 2平台有3个版本&#xff0c;它们是适用于小型设备和智能卡的java 2平台micro版&#xff08;java 2 platform micro edition&#xff0c;j2me&#xff09;、适用于桌面系统的java 2平台标准版&#xff08;java 2 platform standard edition&#xff0c;j2s…

三轴加速度传感器原理及应用

三轴加速度传感器原理   目前的加速度传感器有多种实现方式&#xff0c;主要可分为压电式、电容式及热感应式三种&#xff0c;这三种技术各有其优缺点。以电容式3轴加速度计的技术原理为例。电容式加速度计能够感测不同方向的加速度或振动等运动状况。其主要为利用硅的机械性…

C++各大著名类库

点击打开链接 无意中看到这个&#xff0c;想找到那个牛逼的作者&#xff0c;基本大海捞月。怎么都那么爱转载&#xff0c;转载时连个原帖地址都没有。。。我也不客气了。 在C中&#xff0c;库的地位是非常高的。C之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设…

打开新窗口并关闭当前的窗口的实现办法

我想实现打开新窗口并关闭当前的窗口&#xff0c;大家一起来探讨下&#xff0c;有两个窗体Form1和Form2 我想点击Form1中的一个按钮simpleButton1,打开Form2同时关闭Form1... 如果Form1是主窗口。不可以close只能hide (From1是不是主窗体&#xff0c;在Program.cs这里Applicati…

加速 Microsoft Visual Studio 2008 启动过程

我们在使用Visual Studio 2008时&#xff0c;启动过程总是巨慢无比&#xff0c; 下面三个方法可以让你的VS启动提速。 1. 禁用启动页 在默认情况下&#xff0c;起始页会提供最近的工程列表&#xff0c;但它是以Web页面的方式出现的&#xff0c;也就是说&#xff0c;它启动了IE…

Shark Machine Learning Library 安装配置运行

这两天开始折腾ML的开源库&#xff0c;ML的开源库有很多&#xff0c;比如Torch,MLC,Weka(基于java),Waffles,Shark,scikit,opencv-ml&#xff0c;等等&#xff0c;综合比较了各个开源库的优劣&#xff0c;决定搞搞以下几个库&#xff1a; 1. Shark&#xff0c;基于c 2. scikit&…

深入理解struts的运行机制

扫码关注公众号&#xff0c;不定期更新干活 在此申明本博文并非原创&#xff0c;原文&#xff1a;http://blog.csdn.net/lenotang/article/details/3336623&#xff0c;本文章是在此文章基础上进行优化。也谈不上优化&#xff0c;只是加上了点自己的想法 jar包准备 为什么会用…

C#中通过回车跳转到控件的焦点

在C#编程时&#xff0c;有时希望通过按回车键&#xff0c;控件焦点就会自动从一个控件跳转到下一个控件进行操作。 下面通过登录界面为例&#xff0c;讲解两种实现方法。 问题描述&#xff1a; 以登录界面为例&#xff0c;当输入完用户名后&#xff0c; 若要输入密码&#xff…

和机器学习和计算机视觉相关的数学(from LinDahua)

From: http://dahua.spaces.live.com/default.aspx1. 线性代数 (Linear Algebra)&#xff1a;我想国内的大学生都会学过这门课程&#xff0c;但是&#xff0c;未必每一位老师都能贯彻它的精要。这门学科对于Learning是必备的基础&#xff0c;对它的透彻掌握是必不可少的。我在科…

三层架构项目开发

常见的三层架构包括如下几个部分&#xff1a; 数据访问层 DAL&#xff1a; 用于实现与数据库的交互和访问&#xff0c;从数据库获取数据或保存数据到数据库的部分。 业务逻辑层 BLL&#xff1a; 业务逻辑层承上启下&#xff0c;用于对上下交互的数据进行逻辑处理&#xff0c;实…

【PHP设计模式 09_ZhuangShiQi.php】装饰器模式 (decorator)

<?php /*** 【装饰器模式 (decorator)】* 有时候发布一篇文章需要经过很多人手&#xff0c;层层处理*/header("Content-type: text/html; charsetutf-8");/************************ 《装饰器模式 实现》 ************************/ //文章基础类 class BaseWz{…

推荐C++博客专栏

1.C设计模式 2.C Primer 学习笔记 3.编写高质量代码-改善C程序的150个建议 4.数据结构(内功修炼) 5.C编程规范 6.C并发实战 7.C基础学习笔记 8.Linux多线程编程 9.算法和数据结构C实现 10.数据结构与算法

JavaScript求和

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>求和</title><script>window.onloadfunction(){var oTxt1document.getElementById(txt1);var oTxt2document.getElementById(txt2);var oB…

Web.config 对数据库加密操作

在Web.config 中加入&#xff1a; <appSettings> <add key "ConStringEncrypt" value"false"/> <add key "ConnectionString" value "server你的IP地址; database你的数据库名称; uidsa; pwd"/> </appSetti…

C#在一个窗口中打开另一个窗口,同时关闭该窗口

C#编程时&#xff0c;经常会遇到处理两个或多个窗口的问题。以登录窗口为例&#xff0c;当登录窗口登录验证成功后&#xff0c;要进入主窗口&#xff0c;此时需要关闭登录窗口&#xff0c;这时候用this.close()是不可以的。因为Program.cs中 static void Main() { …
最新文章