力扣 | 11. 盛最多水的容器

双指针解法–对撞指针

在这里插入图片描述

暴力解法public int maxArea1(int[] height) {int n = height.length;int ans = 0;for (int i = 0; i < n; i++) {for (int j = i + 1; j < n; j++) {int area = Math.min(height[i], height[j]) * (j - i);ans = Math.max(ans, area);}}return ans;}
双指针解法
package _11;public class Problem_11_containerWithMostWater {public int maxArea(int height []){int left = 0;int right = height.length - 1;int ans = 0;while (left < right){int area = Math.min(height[left],height[right]) * (right - left);ans = Math.max(ans,area);//原理:宽度一定的时候,面积取决于最短的那一个柱子高度。//假如左边的柱子高度height[left]小于右边柱子的高度height[right],如果从右边高的柱子的方向开始移动,那么height[left]最短高度没变/*开始从右边向左移动,那么情况就是移动之后的right = right - 1;右边的柱子高度height[right]比height[left]大或者小两种情况:* 1. 如果移动之后右边的柱子高度height[right]比height[left]大:* int area = Math.min(height[left],height[right]) * (right - left);* 由于容器高度为height[left]没变,right - left更小,面积更小了,不可行!* 2. 如果移动之后右边的柱子高度height[right]比height[left]小:* int area = Math.min(height[left],height[right]) * (right - left);* 容器高度为height[right]变小,right - left更小,面积更小,不可行!* 所以从高度最高的那个柱子向内移动是不可行!必须从最短的那个柱子向内移动,才可能构造更大的面积的容器!* */if(height[left] <= height[right]){//万一相等呢,所以可以取等号left++;}else {right--;}}return ans;}
}

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

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

相关文章

vue动画(transition)

Vue动画&#xff08;transition&#xff09; 动画列表&#xff08;选择其中一个即可&#xff09; /* fade */ .fade-enter-active, .fade-leave-active {transition: opacity 0.28s; } ​ .fade-enter, .fade-leave-active {opacity: 0; } /* fade */ ​ /* fade-transform */…

ARP相关

ARP报文格式&#xff1a; 目的以太网地址&#xff0c;48bit&#xff0c;发送ARP请求时&#xff0c;目的以太网地址为广播MAC地址&#xff0c;即0xFF.FF.FF.FF.FF.FF。 源以太网地址&#xff0c;48bit。 帧类型&#xff0c;对于ARP请求或者应答&#xff0c;该字段的值都为0x08…

怎么剪切视频中的一部分?看完你就知道了

怎么剪切视频中的一部分&#xff1f;随着自媒体的兴起&#xff0c;越来越多的人开始关注视频编辑和后期制作。在众多自媒体平台上&#xff0c;我们经常可以看到一些精彩的短视频&#xff0c;而这些视频往往都是经过精心编辑和剪切的。那么&#xff0c;怎么剪切视频中的一部分呢…

刘阳,定格历史,守护中华文化!

2021年2月24日&#xff0c;#圆明园365张珍贵老照片#的话题凭3.7亿阅读量冲上热搜。这批时代跨越80年的老照片仿佛重启记忆的按钮&#xff0c;让人梦回“夏宫”&#xff1b;少有人知道&#xff0c;它们的拥有者&#xff0c;却是一位不折不扣的80后。 刘阳&#xff0c;土生土长北…

springboot多数据源支持自定义连接池

背景 springboot 多数据源网上的文章很多&#xff0c;但大多都是互相抄袭&#xff0c;虽然可以实现多数据源的效果&#xff0c;但都是使用的默认的连接池&#xff0c;如果盲目使用可能会导致自定义的连接池参数没生效从而引发数据库连接问题。下面是参考官方文档多数据源支持自…

制作一个Python聊天机器人

我们学习一下如何使用 ChatterBot 库在 Python 中创建聊天机器人&#xff0c;该库实现了各种机器学习算法来生成响应对话&#xff0c;还是挺不错的 什么是聊天机器人 聊天机器人也称为聊天机器人、机器人、人工代理等&#xff0c;基本上是由人工智能驱动的软件程序&#xff0…

情人节专属--HTML制作情人节告白爱心

💕效果展示 💕html展示 <!DOCTYPE html> <html lang="en" > <head>

基于springboot+vue的旅游网站系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

Kotlin 类型别名

Kotlin 提供 给 已存在的类型 取 别名的功能&#xff0c;称为 类型别名&#xff08;Type Aliases&#xff09;。 语法&#xff1a; typealias <别名> <类型或函数>对 简化 长类名 和 泛型类型名 很有用&#xff0c;比如&#xff1a; typealias FileTable<K&…

Spring MVC学习之——上传文件

在Spring MVC中加入上传文件的功能 1.添加依赖 <!--文件上传--> <dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version> </dependency>2.配置文件…

Java 类与对象(对象的分配机制、对象的创建过程、匿名对象)

面向对象 面向对象编程&#xff08;Object-Oriented Programming 简称 OOP&#xff09;是一种程序设计思想和编码架构。 Java 是完全面向对象的&#xff0c; 必须熟悉 OOP 才能够编写 Java 程序。 面向对象的程序是由对象组成的&#xff0c;每个对象包含对用户公开的特定功能…

深入解析与实践:Ajax异步请求在Web开发中的应用指南

一、概述 1、定义 ​ Ajax&#xff08;Asynchronous JavaScript and XML&#xff09;异步请求是现代Web开发中不可或缺的技术组件&#xff0c;它允许网页在不刷新整个页面的情况下从服务器获取并更新数据&#xff0c;从而实现动态、流畅的交互体验。 2、异步和同步 浏览器访…

【主题广范|见刊快】2024年海洋工程与测绘遥感国际学术会议(ICOESRS 2024)

【主题广范|见刊快】2024年海洋工程与测绘遥感国际学术会议(ICOESRS 2024) 2024 International Conference Ocean Engineering and Surveying Remote Sensing(ICOESRS 2024) 一、【会议简介】 随着人类对海洋的认识和开发不断深入&#xff0c;海洋工程和测绘遥感技术的研究和应…

C生万物呀

1、快捷键 快捷键描述ctrl滚轮字体变大小ctrlKC注释ctrlKU取消注释home行首end行末 2、C语言标准库函数 stdio.h&#xff1a;包含了输入输出相关的函数&#xff0c;如printf()、scanf()、fgets()等。 stdlib.h&#xff1a;包含了通用工具函数&#xff0c;如malloc()、free()…

计数排序(线性时间排序)

背景 1954年由 Harold H. Seward 提出 基本思想&#xff1a; 假设&#xff1a;计数排序假设n个输入元素中的每一个都是介于0到k之间的整数 举例&#xff1a;10 个年龄不同的人&#xff0c;统计出有 8 个人的年龄比 A 小&#xff0c;那 A 的年龄就排在第 9 位,用这个方法可以…

本地MinIO存储服务通过Java程序结合Cpolar内网穿透进行远程连接

文章目录 前言1. 创建Buckets和Access Keys2. Linux 安装Cpolar3. 创建连接MinIO服务公网地址4. 远程调用MinIO服务小结5. 固定连接TCP公网地址6. 固定地址连接测试 前言 MinIO是一款高性能、分布式的对象存储系统&#xff0c;它可以100%的运行在标准硬件上&#xff0c;即X86等…

通讯录管理系统

文章目录 1.系统需求2.创建项目3.菜单功能4.退出功能实现5.添加联系人5.1设计联系人结构体5.2设计通讯录结构体5.3main函数中创建通讯录 6.显示联系人6.1封装显示联系人函数6.2测试显示联系人功能 7.删除联系人7.1封装检测联系人是否存在7.2封装删除联系人函数7.3测试删除联系人…

学习【Git项目管理工具】这一篇就够了

目录 1. Git概述2. Git代码托管服务3. Git常用命令3-1. Git全局配置设置用户信息查看配置信息 3-2. 获取Git仓库本地初始化仓库克隆远程仓库 3-3. 基本概念工作区文件状态 3-4. 本地仓库操作git reset 操作 3-5. 远程仓库操作查看远程仓库添加远程仓库推送远程仓库拉取远程仓库…

实战之-Redis商户查询缓存

一、什么是缓存? 前言:什么是缓存? 就像自行车,越野车的避震器 举个例子:越野车,山地自行车,都拥有"避震器",防止车体加速后因惯性,在酷似"U"字母的地形上飞跃,硬着陆导致的损害,像个弹簧一样; 同样,实际开发中,系统也需要"避震器",防止过高…

AWTK 开源智能串口屏方案视频介绍

强大的界面设计器 AWStudio。 基于 AWTK 实现强大的 GUI 功能&#xff08;多窗口、输入法、动画和各种控件&#xff09;。 基于 AWTK-MVVM 实现低代码开发&#xff08;编写绑定规则即可实现常见应用程序&#xff09;。 支持在 PC 上模拟运行&#xff0c;并提供 MCU 模拟器模…