leetcode11.盛最多水的容器

题目描述

在这里插入图片描述

题目分析

看到题目后第一个想法当然是O(n2)O(n^2)O(n2)的,但是数据范围是3e4,应该会超时,而且这种数据范围也不是让暴力求解的 。

相当于求解∑i<jmax((j−i)∗min(a[i],a[j]))\sum_{i<j}{max((j-i)*min(a[i],a[j]))}i<jmax((ji)min(a[i],a[j]))。因为minminmin的缘故,所以我觉得不能进行区间合并。总之没有什么头绪。

看了题解以后发现这是一道数学题,策略: 初始时用两个指针一个指向左侧,一个指向右侧,每次记录当前容量,并将较小指针向较大指针移动。

证明:后附

class Solution {
public:int maxArea(vector<int>& height) {int n = height.size();int i = 0, j = n - 1;int ans = 0;while (i < j) {if (height[i] < height[j]) {ans = max(ans, height[i] * (j - i));++i;} else {ans = max(ans, height[j] * (j - i));--j;}}return ans;}
};

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

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

相关文章

每日一题:leetcode190.颠倒二进制位

题目描述 题目分析 题目本身很简单&#xff0c;没觉得有什么技巧可以再进行优化了&#xff0c;觉得位运算是无法打乱相对顺序的&#xff0c;而这里需要进行镜像颠倒的操作。因此就踏实地写了一个循环。 在使用位运算得到每一位的时候&#xff0c;我吸取了经验&#xff0c;用一…

结构屈曲分析

结构屈曲分析主要用于判定结构受载后是否有失稳风险&#xff0c;作为工程应用&#xff0c;一般分为线性屈曲分析和非线性屈曲分析。 线性屈曲分析需要具备较多的前提条件&#xff0c;如载荷无偏心、材料无缺陷等&#xff0c;在实际工程应用中结构制作过程和加载方式很难达到线性…

每日一题:leetcode74.搜索二维矩阵

题目描述 题目分析 感觉这是一个放错标签的简单题。题目非常简单&#xff0c;思路应该很明确是二分&#xff0c;我很快写了一个&#xff08;虽然不小心把!打成调试了一会&#xff09;。 class Solution { public:bool searchMatrix(vector<vector<int>>& mat…

每日一题:leetcode90.子集贰

题目描述 题目分析 感觉这道题让自己对枚举排列有了一个更好的认识&#xff0c;感觉自己的这种思路不错。 假设没有重复元素&#xff08;退化成78.子集&#xff09;&#xff0c;我们应该怎么做&#xff1f;初始的时候幂集中只有一个空集&#xff0c;然后对每个元素&#xff0…

每日一题:leetcode1006.笨阶乘

题目描述 题目分析 因为顺序一定且没有括号&#xff0c;所以逻辑很简单。我们要顺序处理的矛盾在于&#xff0c;减号后面会再出现乘法和除法&#xff0c;我们不妨将对乘法和除法用一个临时值进行计算&#xff0c;计算结束后再合并到值里面&#xff0c;一般来讲乘法和除法的处理…

每日一题:leetcode80.删除有序数组中的重复元素贰

题目描述 题目分析 又是一道贴错标签的简单题&#xff0c;很明显的双指针&#xff0c;我的做法是用两个变量保存是否需要记录&#xff0c;官方题解的做法是直接判断&#xff0c;人家的高明一些 class Solution { public:int removeDuplicates(vector<int>& nums) {…

每日一题:leetcode81.搜索旋转排序数组Ⅱ

题目描述 题目分析 不含重复元素的题解&#xff08;leetcode33&#xff09; 这道题也是我们算法课的一道编程题&#xff0c;写完以后发现当时的思路和现在没有什么变化&#xff0c;果然是自己啊。我的想法是先判断区间整体是升序的还是旋转的&#xff0c;如果是升序的就按照正…

C++ JSON库:JSON for Morden C++

绪论 最近因为项目的需要&#xff0c;需要对JSON进行一定的数据处理&#xff0c;因为想要用C进行编码&#xff0c;便对C的JSON库进行的调研&#xff0c;发现这个库比较好用&#xff1a;JSON for Morder C。 使用指南 想要使用这个json库&#xff0c;只需要在源文件中包含jso…

Linux信号实现精确到微秒的sleep函数:通过sigsuspend函数解决时序竞态问题

原理就是先使用定时器定时&#xff0c;然后再使用pause函数或者sigsuspend函数主动阻塞挂起&#xff0c;最终恢复现场。 如果使用pause函数的话&#xff0c;优点是使用简单&#xff0c;缺点是有可能产生时序竞态&#xff0c;导致进程一直阻塞下去&#xff1a;在定时和挂起之间…

Linux创建多个子进程并通过捕获SIGCHLD信号进行非阻塞回收

我们通过fork函数创建多个子进程&#xff0c;并通过exec函数族在子进程中进行其他的工作&#xff0c;但是为了避免僵尸进程&#xff0c;我们要对子进程进行回收。常用的回收方式是wait或者waitpid进行阻塞回收&#xff0c;因为如果非阻塞回收很难把握时机&#xff0c;而阻塞回收…

Linux创建守护进程

守护进程&#xff08;Daemon&#xff09;是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务&#xff0c;不是对整个系统就是对某个用户程序提供服务。Linux系统的大多数服务器就是通过…

Linux创建多个子线程并回收

创建子线程的逻辑相比子进程要更容易理解一些&#xff0c;因为线程没有像进程那样复制很多东西另起炉灶&#xff0c;子线程从传入的开始函数开始运行&#xff0c;但是难点在于传入参数和回收时获取退出状态&#xff0c;因为这两个原本都是void *类型的&#xff0c;而我们在使用…

Qt发布程序

Windows&#xff1a; https://www.cnblogs.com/linuxAndMcu/p/10974927.html Ubuntu&#xff1a; https://blog.csdn.net/u014779536/article/details/107854060

K210入门

之前购买了一个Sipeed Maix M1w Dock k210的开发板&#xff0c;想着自己鼓捣鼓捣&#xff0c;在网上看到了一些好的教程&#xff0c;在这里记录一下&#xff1a; 嵌入式AI从入门到放肆【K210篇】-- 硬件与环境&#xff1a;介绍了各种开发环境的搭建&#xff0c;但是不是特别详细…

C++输入输出:cin/cout 还是 scanf/printf?

相信使用C的人都有一种迷惑或者是不自信&#xff1a;在输入输出的时候是不是应该使用scanf/printf更好呢&#xff0c;因为传说cin/cout龟速&#xff0c;我当时也长期被这个所困扰&#xff0c;后来在阅读C primer第五版的时候我自己做了一个测试&#xff0c;发现如果不使用std::…

UVA - 101:The Blocks Problem

原本以为是一道很简单的模拟题&#xff0c;结果写了一个小时。。。很长时间不碰算法题&#xff0c;的确手感差很多。不过我觉得随着刷题慢慢多起来应该会好的。 题目的意思也有点含糊&#xff0c;需要自己去猜&#xff0c;大概意思就是槽里有一堆木头&#xff0c;每个槽刚开始…

UVA - 12096:The SetStack Computer

题目描述很简单&#xff0c;难点在于如何对集合进行编码&#xff0c;因为是无限的&#xff0c;好像没有一个方向进行编码。 紫书给的题解十分巧妙&#xff1a;给新出现的集合进行编码 的确&#xff0c;我们没有必要为所有可能出现的集合编码后再开始&#xff0c;我们就可以简单…

UVA - 540:Team Queue

主要的关键在于&#xff1a;不要试图让所有团队的人在一个队列里面&#xff0c;因为这样如果新入队的是一个前面团队的成员则必须先出队再入队。 应该把每个团队看做一个整体&#xff0c;用一个队列维护团队的顺序&#xff0c;用t个队列维护每个团队内部的顺序。 还有就是要维…

UVA-136:Ugly Numbers

很简单的一道题&#xff0c;但是我竟然蠢到想不明白为什么如果从头生成会出现大量重复的数字。 写的时候主要出现的错误在爆int上&#xff0c;一定要注意数据范围。 #include <iostream> #include <queue> #include <set>using namespace std; using ll lo…

类的成员函数可以访问属于该类的任意对象的私有变量

之前在书上看到成员函数可以访问类的私有变量的时候觉得是废话嘛&#xff0c;如果成员函数都不能访问那私有变量不就变成了花瓶了。然而发现自己还是太naive。 这句话的意思是&#xff1a;在类的作用域内&#xff0c;包含成员函数、静态成员函数和友元函数内&#xff0c;可以访…