算法---双指针-4(盛水最多的容器)

题目

  • 1. 题目解析
  • 2. 讲解算法原理
  • 3. 编写代码

1. 题目解析

题目地址:盛水最多的容器

在这里插入图片描述

在这里插入图片描述

2. 讲解算法原理

在这里插入图片描述

算法的主要思路是使用双指针的方法,通过不断调整指针的位置来计算面积,并更新最大面积。

具体步骤如下:

  • 初始化左指针x为数组的起始位置,右指针y为数组的末尾位置。
  • 2. 进入循环,判断左指针x是否小于右指针y,如果成立,则继续执行下面的步骤。
  • 根据双指针指向的柱子的高度,选取较小的柱子高度作为当前的高度h。
  • 计算当前两个柱子之间的面积,即h * (y - x)。
  • 判断当前面积是否大于最大面积max,如果是,则更新max为当前面积。
  • 6. 根据当前两个柱子的高度判断,如果左指针指向的柱子高度小于右指针指向的柱子高度,则将左指针向右移动一位(x++),否则将右指针向左移动一位(y–)。
  • 重复步骤2至步骤6,直到左指针x不再小于右指针y。
  • 返回最大面积max作为结果。

3. 编写代码

class Solution {
public:
    int maxArea(vector<int>& height) {
        //双指针
        int x=0,y=height.size()-1;
        int h=0;
        int max=0;
        while(x<y)
        {
            if(height[x]>height[y])
            h=height[y];
            else
            h=height[x];
            if(max<(h*(y-x)))
            max=h*(y-x);
            if(height[x]<height[y])
            x++;
            else
            y--;
        }
        return max;
    }       
};

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

融资项目——通过OpenFeign在分布式微服务框架中实现微服务的远程调用

1.OpenFeign配置 首先&#xff0c;在需要调用其他的微服务的微服务中引入相关依赖。&#xff08;大多数项目中各微服务需要互相调用&#xff0c;可以直接在每个微服务中引入依赖&#xff09; <!--服务调用--><dependency><groupId>org.springframework.clou…

Transformer算法详解

注意&#xff1a;本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 &#xff08;[www.aideeplearning.cn]&#xff09; 算法简介 Transformer架构于2017年6月推出。最初的研究重点是自然语言处理领域的翻译任务。随后&#xff0c;几个具有影响力的模型被引入&#…

使用 ANN 进行输电线路故障检测

注意&#xff1a;本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 &#xff08;[www.aideeplearning.cn]&#xff09; 背景 输电线路的重要性&#xff1a;输电线路在电力系统中至关重要&#xff0c;负责将电力从电源传输到配电网络。现代社会对可靠电力的需求呈指…

Windows Docker 部署 MySQL

部署 MySQL 打开 Docker Desktop&#xff0c;切换到 Linux 容器。然后在 PowerShell 执行下面命令&#xff0c;即可启动一个 MySQL 服务。这里安装的是 8.3.0 Tag版本&#xff0c;如果需要安装其他或者最新版本&#xff0c;可以到 Docker Hub 进行查找。 docker run -itd --n…

Linux安全--为Nginx加上PHP解析功能

yum install php-fpm -y安装php进程管理器 找到Nginx安装的路径 编辑Nginx配置文件

LVS集群 ----------------(直接路由 )DR模式部署 (二)

一、LVS集群的三种工作模式 lvs-nat&#xff1a;修改请求报文的目标IP,多目标IP的DNAT lvs-dr&#xff1a;操纵封装新的MAC地址&#xff08;直接路由&#xff09; lvs-tun&#xff1a;隧道模式 lvs-dr 是 LVS集群的 默认工作模式 NAT通过网络地址转换实现的虚拟服务器&…

3•8向女同胞致敬|营销枢纽SaaS厂商乐通达(ltd.com)正式更名枢纽云

为了向女同胞致敬&#xff0c;我们特地选择3月8日女神节变更公司名称&#xff0c;因为《如果SaaS有性别&#xff0c;那 TA一定是女性 》。 2024年3月8日&#xff0c;“杭州乐通达网络有限公司”名称正式变更为“杭州枢纽云计算有限公司”&#xff08;简称&#xff1a;营销枢纽&…

YOLOv8.1.0安装

【YOLO】YOLOv8训练环境配置 python 3.8.18 cuda 11.3.1 cudnn 8.2.1 pytorch 1.12.1-gpu版 - 知乎 (zhihu.com) 一、Anaconda 默认装好了可用的Anaconda&#xff0c;安装教程见Win10系统anaconda安装 - 知乎 (zhihu.com) 二、在虚拟环境下用conda安装 1.创建虚拟环境 …

双链表的实现(数据结构)

链表总体可以分为三大类 一、无头和有头 二、单向和双向 三、循环和不循环 从上面分类得知可以组合成8种不同类型链表&#xff0c;其中单链表最为简单&#xff0c;双联表最为复杂&#xff0c;两种链表都实现后其余链表都不成问题。 我们前期博客已将完成了单向无头不循环链表…

DNDC土地数据、土壤数据、结果分析、率定验证、土壤碳储量与作物产量、温室气体排放分析、农田减排潜力分析、土地变化下DNDC模拟、气候变化下的DNDC模拟

DNDC模型 DNDC模型是一个用于模拟和追踪农业生态系统中碳氮生物地球化学循环的过程模型&#xff0c;可以用来模拟农业生态系统碳氮排放、农作物产量、土壤固碳作用以及硝酸盐淋失等过程。 模型由两部分组成&#xff1a;第一部分包括土壤气候、植物生长和有机质分解等3个子模型…

二叉搜索树(BST)的创建及增,删,查,改(详解)

目录 初识二叉搜索树&#xff08;BST&#xff09;&#xff1a; 二叉搜索树查找元素&#xff1a; 二叉搜索树修改元素: 二叉搜索树中的增加元素&#xff1a; 二叉搜索树中的删除元素&#xff1a; 初识二叉搜索树&#xff08;BST&#xff09;&#xff1a; 一张图简要概括二…

虚幻4 | 制作游戏——学习记录(一)

1. 启动Epic后下载虚幻4&#xff0c;打开虚幻4后新建一个第三人称游戏项目&#xff0c;效果如下&#xff1a; &#xff08;1&#xff09;内容/ThirdPersonBP/Blueprints中的ThirdPersonCharacter&#xff08;左下角人物&#xff09; 这是模板中使用的主要蓝图类&#xff0c;它…

LED驱动控制芯片SM5166:可消除LED显示模组毛毛虫现象

SM5166是一款LED驱动控制芯片&#xff0c;专为LED显示模组设计&#xff0c;具备多项先进功能。以下是关于SM5166的详细解释&#xff1a; 1. 消除LED显示模组毛毛虫现象&#xff1a;毛毛虫现象是LED显示屏上一种常见的显示问题&#xff0c;表现为在显示动态图像时&#xff0c;L…

LVS (Linux Virtual server)集群介绍

一 集群和分布式 &#xff08;一&#xff09;系统性能扩展方式&#xff1a; Scale UP&#xff1a;垂直扩展&#xff0c;向上扩展,增强&#xff0c;性能更强的计算机运行同样的服务 &#xff08;即升级单机的硬件设备&#xff09; Scale Out&#xff1a;水平扩展&#xff0…

TomCat9的安装与配置

什么是TomCat Tomcat,作为Apache软件基金会下的一个开源项目,是广泛使用的Java Servlet容器和Web服务器。Tomcat提供了运行Java Web应用程序的环境,并且由于其对Servlet和JSP的支持,它成为了许多Java Web应用程序的首选服务器。下面,我们将详细介绍Tomcat的安装与配置过程…

Codeforces Round 932(Div.2) A~E

A.Entertainment in MAC&#xff08;字符串&#xff09; 题意&#xff1a; 恭喜你&#xff0c;你被硕士援助中心录取了&#xff01;但是&#xff0c;你在课堂上感到非常无聊&#xff0c;于是你给自己想了一个游戏。 给你一个字符串 s s s和一个偶数整数 n n n。你可以对它进…

软件测试技术分享 | 测试环境搭建

被测系统的环境搭建&#xff0c;是我们作为软件测试人员需要掌握的技能。 被测系统AUT (Application Under Test) 常见的被测系统即需要被测试的 app&#xff0c;网页和后端服务。大致分为两个方面移动端测试和服务端测试&#xff0c;如下图所示&#xff1a; 常见的被测系统类…

javaSE-----继承和多态

目录 一.初识继承&#xff1a; 1.1什么是继承&#xff0c;为什么需要继承&#xff1a; 1.2继承的概念与语法&#xff1a; 二.成员的访问&#xff1a; 2.1super关键字 2.2this和super的区别&#xff1a; 三.再谈初始化: 小结&#xff1a; 四.初识多态&#xff1a; 4.1多…

RabbitMQ架构详解

文章目录 概述架构详解核心组件虚拟主机&#xff08;Virtual Host&#xff09;RabbitMQ 有几种广播类型 概述 RabbitMQ是⼀个高可用的消息中间件&#xff0c;支持多种协议和集群扩展。并且支持消息持久化和镜像队列&#xff0c;适用于对消息可靠性较高的场合 官网https://www.…

ubuntu22.01安装及配置

前言 本次安装基于VMware Pro 16进行安装。 ubuntu版本&#xff1a;ubuntu-22.04.3-live-server-amd64.iso 1、下载 1.1官网下载 https://ubuntu.com/download 1.2、清华大学镜像网站下载 https://mirrors.tuna.tsinghua.edu.cn/ 进入网站后搜索ubuntu&#xff0c;选择ubu…