盛⽔最多的容器【双指针】

news2025/1/4 9:17:50

在这里插入图片描述
在这里插入图片描述

首先我们设该容器的两边为左右两边界。
这道题中的:盛⽔最大容量 = 底 * 高 = 左右两边界距离 * 左右两边界的较短板。
这道题如果用暴力求解,是个人都能想到怎么做,遍历所有的情况即可。
有没有更好的办法呢?我是搜了资料了解的。我觉得一般人【有可能只是我的知识水平太低才有这样的看法】第一次做想不出来这种情况,我们只能通过这道题的更优的思想在日后做题中可以借鉴。

那么这道题的更优法是什么呢?

首先一个容器肯定是有两边界和底边组成的,这道题的核心就是我们要找到底边*高度的最大值。
我们先把最左和最右作为容器的边界记录此时的容量,然后把左右边界的短板向相反方向移动,记录。继续移动短板知道左右指针相遇结束,取这些值的最大值作为结果。

怎么理解?

暴力求解是遍历所有的可能取最大值,这种做法其实就是依据给出的条件结合当下能利用的数据尽量的选择了一些尽可能大的值,取最大值作为结果。

为什么移动短板?

初识左右指针为最左和最右,此时我们移动其中一个,移动高的还是低的?只要移动一边,底肯定变小,如果还是移动高的一边,不仅底小了,高也小了,如果移动地的一边,虽然底小了,但是高大了,即若向内移动短板,下个水槽的面积可能增大 。若向内移动长板,下个水槽的面积一定变小。

他是如何保证舍去的值不是较大值呢?

向内移动短板(假设该短板的下标为x,此时右边界的下标为y),实际上是舍去了将x作为左边界到y-1的集合,即暴力求解是n边取2边的所有取值的集合,这个解法是每一步舍去不会作为较大值的集合。如何保证舍去的值不是较大值呢?即如何保证将x作为左边界到y-1的集合不是较大值?这些集合分别是【x, y-1】【x, y-2】… 【x, x+1】这些集合中所有取值的底边都比已经作为较大值的【x, y】的底边小,所有的高度都比已经作为较大值的【x, y】的高度小或者等于。为什么?假设这些集合中的某一个右边比x大,由于容器容量取决于短板,故高度取x;假设这些集合中的某一个右边比x小,由于容器容量取决于短板,故高度取这个右边;底边小且高度小于等于 ⇒ 舍去的都不是较大值,即舍去的可以放心舍去。

代码

class Solution
{
public:
    int maxArea(vector<int> &height)
    {
        int left = 0, right = height.size() - 1, ret = 0;
        while (left < right)
        {
            int volume = min(height[left], height[right]) * (right - left);
            ret = max(ret, volume);

            // 移动短板
            if (height[left] < height[right])
                left++;
            else
                right--;
        }
        return ret;
    }
};

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

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

相关文章

计算机视觉技术:美颜SDK在直播平台的集成与优化

当下&#xff0c;美颜技术在直播平台中的应用变得愈发重要。接下俩&#xff0c;小编将深度讲解计算机视觉技术在美颜SDK集成与优化方面的应用&#xff0c;以提升直播平台的用户体验。 一、美颜技术的发展 传统的美颜功能只是简单地对图像进行柔化处理&#xff0c;而现在的美颜…

论文导读 | 漫谈图神经网络

本文主要介绍图神经网络相关内容&#xff0c;包括图神经网络的基本结构以及近期研究进展。 背景 在实际生活中&#xff0c;许多数据都可以用图的形式表达&#xff0c;比如社交网络、分子模型、知识图谱、计算机网络等。图深度学习旨在&#xff0c;显式利用这些数据中的拓扑结…

各类主流电商API商品采集接口的权限控制和功能权限控制

主流电商平台的API接口类型 参数说明 通用参数说明 url说明 /平台/API类型/ 平台&#xff1a;淘宝&#xff0c;京东等&#xff0c; API类型:[item_search,item_get,item_search_shop等]version:API版本key:调用key,测试key:test_api_keysecret:调用secret,测试secret:(不用填写…

思腾合力携AI服务器亮相第二十一届中国电博会

博会已发展成为海峡两岸IT产业界规模最大、参展企业最多、产业配套最全的知名展会之一&#xff0c;今年以“数字赋能、创新制造”为主题&#xff0c;线下参展企业达400家。展会期间&#xff0c;举办了论坛与产业洽谈会等系列活动&#xff0c;进一步推动了两岸电子信息产业融合发…

码垛机与人工搬运:效率与安全性的比较分析

在现代包装行业中&#xff0c;泡沫箱因其轻便和保温特性被广泛用于商品的包装与运输。随着自动化技术的不断发展&#xff0c;码垛机成为提升泡沫箱生产效率、降低劳动强度的关键技术。本文旨在比较码垛机与人工码垛在泡沫箱生产中的优势&#xff0c;并探讨自动化码垛的未来发展…

4、事件修饰符、过滤器、自定义指令、生命周期

一、事件修饰符 按键别名enter 回车 delete 删除键 esc取消键 space 空格键 <script> export default {name: "KeyUp",methods:{keyUp(e){ console.log(e) }},skip(){window.location.href "http:www.xx.com"} } </script> <template>…

数学算法(算法竞赛、蓝桥杯)--最大公约数,欧几里得算法

1、B站视频链接&#xff1a;G05 最大公约数 欧几里得算法_哔哩哔哩_bilibili 题目链接&#xff1a;[NOIP2001 普及组] 最大公约数和最小公倍数问题 - 洛谷 #include <bits/stdc.h> using namespace std; typedef long long LL; LL x,y,ans;LL gcd(LL a,LL b){return b0?…

网工内推 | 松下电器,解决方案工程师,最高25K,IE认证优先

01 松下电器 招聘岗位&#xff1a;基盘解决方案架构师 职责描述&#xff1a; 1、网络的规划设计&#xff0c;架构实施和故障排渣以及调优 2、负责网络设备的选型、搭建、系统监控、故障解决、性能优化 3、负责对集团内相关业务&#xff0c;进行提案或项目管理相关工作 4、对…

Java多线程的常用方法和使用

多线程 哈喽大家好&#xff0c;我是薛慕昭&#xff0c;今天来回顾一下java的多线程&#xff0c;例如实现的方法等。 一、多线程常用方法 下面我们演示一下getName()、setName(String name)、currentThread()、sleep(long time)这些方法的使用效果。 public class MyThread e…

编译安装飞桨fastdeploy@FreeBSD(失败)

FastDeploy是一款全场景、易用灵活、极致高效的AI推理部署工具&#xff0c; 支持云边端部署。提供超过 &#x1f525;160 Text&#xff0c;Vision&#xff0c; Speech和跨模态模型&#x1f4e6;开箱即用的部署体验&#xff0c;并实现&#x1f51a;端到端的推理性能优化。包括 物…

铁威马TOS 6.0 Beta全球公测进行中,快来体验一下吧!

铁威马TOS 6.0 Beta已经正式上线啦 大家体验了吗? 今天和大家分享TOS 6.0的更新指南 01TOS 6 Beta更新指南 为了更好的体验TOS 6 请细阅以下指南 敲重点&#xff01; 本次更新仅适用于TOS 5.1.123 或以后的版本&#xff1b;如您的设备不符合更新条件&#xff0c;请勿更新…

2024年道路运输企业主要负责人证模拟考试题库及道路运输企业主要负责人理论考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年道路运输企业主要负责人证模拟考试题库及道路运输企业主要负责人理论考试试题是由安全生产模拟考试一点通提供&#xff0c;道路运输企业主要负责人证模拟考试题库是根据道路运输企业主要负责人最新版教材&#…

速看!2024广州国际服务机器人产业博览会

2024广州国际服务机器人产业博览会 时间&#xff1a;2024年12月19-21日 地点&#xff1a;中国进出口商品交易会琶洲展馆 近年来我国服务机器人智能化、个性化水平快速提升&#xff0c;使其需求领域不断扩展&#xff0c;销售额不断增长。尤其是疫情带动服务机器人需求增长&am…

To 有缘看到的,To 同处困境无助中的,To myself

To 有缘看到的&#xff0c;To 同处困境无助中的&#xff0c;To myself To 有缘看到的朋友&#xff1a; 我们生而为人&#xff0c;而不是什么神仙妖怪&#xff0c;自然逃不脱凡尘种种不易。我和你们都一样&#xff0c;甚至可以说我的条件并不好&#xff0c;我也不是什么智者&…

(执行上下文作用域链)前端八股文修炼Day4

一 作用域作用域链 作用域&#xff08;Scope&#xff09;是指程序中定义变量的区域&#xff0c;作用域规定了在这个区域内变量的可访问性。在 JavaScript 中&#xff0c;作用域可以分为全局作用域和局部作用域。 全局作用域&#xff1a;在代码中任何地方都可以访问的作用域&am…

FlyControls 是 THREE.js 中用于实现飞行控制的类,它用于控制摄像机在三维空间中的飞行。

demo演示地址 FlyControls 是 THREE.js 中用于实现飞行控制的类&#xff0c;它用于控制摄像机在三维空间中的飞行。 入参&#xff1a; object&#xff1a;摄像机对象&#xff0c;即要控制的摄像机。domElement&#xff1a;用于接收用户输入事件的 HTML 元素&#xff0c;通常…

某音乐歌曲链接接口加密算法刨析

如可逆向&#xff1a;某抑云音乐歌曲链接接口逆向-CSDN博客 补环境方式&#xff1a;某抑云音乐歌曲链接接口逆向之补环境-CSDN博客 问题由来 上述方式中【特指补环境】当我们将环境补齐 Javascript 【V8环境】去运行构建出来得值是可以使用得&#xff0c; 但使用Python去调起使…

SpringBoot+ElasticSearch实现文档内容抽取、高亮分词、全文检索

需求 产品希望我们这边能够实现用户上传PDF、WORD、TXT之内得文本内容&#xff0c;然后用户可以根据附件名称或文件内容模糊查询文件信息&#xff0c;并可以在线查看文件内容。 一、环境 项目开发环境&#xff1a; 后台管理系统springbootmybatis_plusmysqles 搜索引擎&#…

2024.3.26学习笔记

今日学习韩顺平java0200_韩顺平Java_对象机制练习_哔哩哔哩_bilibili 今日学习p273-p285 包 包的本质实际上就是创建不同的文件夹/目录来保存类文件 包的三大作用 区分相同名字的类 当类很多时&#xff0c;可以很好的管理类 控制访问范围 包的基本语法 package com.xx…

函数进阶-Python

师从黑马程序员 函数中多个返回值的接收 def test_return():return 1,"hello",3x,y,ztest_return() print(x) print(y) print(z) 多种参数的使用 函数参数种类 位置参数 关键字参数 def user_info(name,age,gender):print(f"姓名是{name},年龄是:{age},性别是…