力扣学习笔记——11. 盛最多水的容器
链接:https://leetcode.cn/problems/container-with-most-water/
11. 盛最多水的容器
给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。
找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
返回容器可以储存的最大水量。
我自己的暴力解法
class MySolution
{
public:int maxArea(std::vector<int> &height){if (0 == height.size()){std::cout << "error,input error size is 0!" << std::endl;return 0;}int max_area_value = 0;int max_area_temp = 0;for (int i = 0; i < height.size(); ++i){for (int j = i; j < height.size(); ++j){max_area_temp = std::min(height[i], height[j]) * (j - i);std::cout << "i = " << i << " j = " << j << ",max_area_temp = " << max_area_temp << std::endl;if (max_area_temp > max_area_value){max_area_value = max_area_temp;}}}return max_area_value;}
};
虽然也能求出来,但是肯定超时,效率很低。
官方题解
看了官方题解,自己也重新写了一遍如下:
class Solution {
public:int maxArea(vector<int>& height) {if (0 == height.size()){std::cout << "error,input error size is 0!" << std::endl;return 0;}int max_area_value = 0;int max_area_temp = 0;int left_index = 0;int right_index = height.size() - 1;for (int i = 0; i < height.size(); ++i){if (left_index >= right_index){break;}max_area_temp = std::min(height[left_index], height[right_index]) * (right_index - left_index);if (max_area_temp > max_area_value){max_area_value = max_area_temp;}if (height[left_index] < height[right_index]){left_index++;}else{right_index--;}}return max_area_value;}
};
官方剪短版本。代码写的很剪短优美。
class Solution {
public:int maxArea(vector<int>& height) {int i = 0, j = height.size() - 1, res = 0;while(i < j) {res = height[i] < height[j] ? max(res, (j - i) * height[i++]): max(res, (j - i) * height[j--]); }return res;}
};
相关文章:
力扣学习笔记——11. 盛最多水的容器
链接:https://leetcode.cn/problems/container-with-most-water/ 11. 盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的…...
Spring Boot: 约定优于配置的软件设计思想
文章目录 传统Spring框架的繁琐配置1. **管理jar包依赖**2. **维护web.xml**3. **维护Dispatch-Servlet.xml配置项**4. **应用部署到Web容器**5. **第三方组件集成到Spring IOC容器中的配置项维护** Spring Boot的简化与自动化1. Spring Boot Starter启动依赖2. 自动装配机制3.…...

TCP触发海康扫码相机S52CN-IC-JQR-NNN25
PC环境设置 为保证客户端正常运行以及数据传输的稳定性,在使用客户端软件前,需要对 PC 环境 进行设置 关闭防火墙 操作步骤如下: 1. 打开系统防火墙。 2. 在自定义设置界面中,选择关闭防火墙的对应选项,并单击…...

ArcGIS:如何迭代Shp文件所有要素并分别导出为Shp文件?
01 前言 尝试用IDL实现,奈何又涉及新的类IDLffShape,觉得实在没有必要学习的必要,毕竟不是搞开发,只是做做数据处理,没必要拿IDL不擅长的且底层的东西自己造轮子。 这里想到使用Python去解决,gdal太久没用…...

[工业自动化-11]:西门子S7-15xxx编程 - PLC从站 - 分布式IO从站/从机
目录 一、什么是以分布式IO从站/从机 二、分布式IO从站的意义 三、ET200分布式从站系列 一、什么是以分布式IO从站/从机 在工业自动化领域中,分布式 IO 系统是目前应用最为广泛的一种 I/O 系统,其中分布式 IO 从站是一个重要的组成部分。 分布式 IO …...

Linux技能篇-yum源搭建(本地源和公网源)
文章目录 前言一、yum源是什么?二、使用镜像搭建本地yum源1.搭建临时仓库第一步:挂载系统ios镜像到虚拟机第二步:在操作系统中挂载镜像第三步:修改yum源配置文件 2.搭建本地仓库第一步:搭建临时yum源来安装httpd并做文…...

电脑清灰涂硅脂后电脑CPU温度不降反升
目录 一.问题描述二.问题解决三.拆机注意事项四.影响散热的主要因素说明1.通风差2.硅脂材料差3.硅脂涂抹方式错误 一.问题描述 电脑型号:暗影精灵5 测温工具:硬件狗狗(只要是测温软件都可以,比如omen hub和Core Temp…࿰…...

吴恩达《机器学习》8-1->8-2:非线性假设、神经元和大脑
一、非线性假设 在之前学到的线性回归和逻辑回归中,存在一个缺点,即当特征数量很多时,计算的负荷会变得非常大。考虑一个例子,假设我们使用 𝑥₁, 𝑥₂ 的多项式进行预测,这时我们可以很好地应…...
services.Jenkins Additional property tags is not allowed
今天需要给Jenkins server添加几个tag,于是就在docker的compose文件中添加了如下的tags, version: "3.9" services:jenkins:image: testbuild: context: services/jenkinsargs:- jenkins_version2.346.2- plugin_cli_version2.9.3volumes:- j…...

vColorPicker——基于 Vue 的颜色选择器插件
文章目录 前言样例特点 一、使用步骤?1. 安装2.引入3.在项目中使用 vcolorpicker 二、选项三、事件 前言 vColorPicker——官网 vColorPicker——GitHub 样例 vColorPicker是基于 Vue 的一款颜色选择器插件,仿照Angular的color-picker插件制作 特点 …...
Direct3D粒子系统
粒子和点精灵 粒子(是种微小的物体,在数学上通常用点来表示其模型。所以显示粒子时,使用点图元(由 D3 DPRIMITIVETYPE类型的D3 DPT POINTLIST枚举常量表示)是一个很好的选择。但是光栅化时,点图元将被映射为一个单个像素。这样就无法为我们提供很大的灵活性,因为实际应用…...

第24章_mysql性能分析工具的使用
文章目录 1. 数据库服务器的优化步骤2.查看系统性能参数3. 统计SQL的查询成本:last_query_cost4. 定位执行慢的 SQL:慢查询日志4.1 开启慢查询日志参数4.2 查看慢查询数目4.3 测试慢sql语句,查看慢日志4.4 系统变量 log_output, l…...
【Git】Merge/Rebase/Cherriy-Pick的区别
Git Merge/Rebase/Cherriy-Pick的区别 Git merge、Git Rebase、Git Cherry-pick是Git 常用的三个命令,可以用于分支合并、纳入提交等。 那么它们三个的区别以及共同点是什么? 了解这些可以帮我们更好理解Git的工作原理,进而学习它的一些设计思想。 git merge xxx-branch g…...
Python复习:序列(列表元组字符串)
Python复习 Python复习序列(列表元组字符串)列表定义列表增删改查列表的切片列表的一些常用操作符元组字符串 Python复习 序列(列表元组字符串) 列表元组字符串有一些同样的特点,所以放在一起复习。例如切片操作 列…...
DevChat助力成为软件开发的“钢铁侠”
一、背景介绍: 随着人工智能ChatGPT的发展,ChatGPT 的开放将推动人工智能在各个行业的应用,带来诸多的变革和提高,曾经一段时间也是担心对软件行业的影响,会不会以后就不需要这么多程序员了,实际上在当下&…...

c: struct sort descending and ascending in windows and Ubuntu
/*** file StudentStructSort.h* author geovindu,Geovin Du,涂聚文 (geovindu163.com)* ide: vscode c11,c17 Ubuntu 22.4* brief 结构体排序示例* date 2023-11-05* version 0.1* copyright geovindu 站在巨人的肩膀上 Standing on the Shoulders of Giants**/#ifnd…...

Python - 利用 OCR 技术提取视频台词、字幕
目录 一.引言 二.视频处理 1.视频样式 2.视频截取 ◆ 裁切降帧 ◆ 处理效果 3.视频分段 三.OCR 处理 1.视频帧处理 2.文本识别结果 3.后续工作与优化 ◆ 识别去重 ◆ 多线程提效 ◆ 片头片尾优化 四.总结 一.引言 视频经常会配套对应的台词或者字幕,…...

VUE页面导出PDF方案
1,技术方案为:html2canvas把页面生成canvas图片,再通过jspdf生成PDF文件; 2,安装依赖: npm i html2canvas -S npm i jspdf -S 3,封装导出pdf方法exportPdf.js: // 页面导出为pdf格式 //titl…...
机器学习笔记 - WGAN生成对抗网络概述和示例
一、简述 Wasserstein GAN或WGAN是一种生成对抗网络,它最小化地球移动器距离 (EM) 的近似值,而不是原始 GAN 公式中的 Jensen-Shannon 散度。与原始 GAN 相比,它的训练更加稳定,模式崩溃的证据更少,并且具有可用于调试和搜索超参数的有意义的曲线。 Wasserstein 生成对抗网…...
HoudiniVex笔记_P0_Houdini中文文档与翻译
1、19.0版本中文说明文档 链接:https://pan.baidu.com/s/1oJcX5pdnBZ_YWWwOSnFB5g?pwdz3tw 提取码:z3tw 2、翻译插件 有上网条件的同学可以试试这个翻译插件:双语网页翻译 - 电子书翻译 - PDF翻译 - 字幕文件翻译浏览器扩展 | 沉浸式翻译…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...

基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...