每日一练 1(双指针)(单调性)

1.题目解析

2.解题

2.1暴力解法(遍历)

用for循环穷举所有组合的容积,找出最大值

测试用例可通过,但是提交不会过,这是一道中等题,对时间复杂度会有要求,这里的时间复杂度为O(N*2),提交就会显示超时。

2.2更优解

思路

首先本题是第一道求最值问题,我们可以尝试找出体积增长的规律(单调性)来运用双指针来解题。

就本题给出的示例:

a.给出双指针,准备遍历:

b.计算容积

c.观察遍历规律:(这里"指针"就代表指向元素)

d.得出结论:

前一次体积计算完之后,无需将较小的一方与剩下的元素进行遍历,而是直接舍去较小值与其他元素组合的情况,大大减少计算量,只需要遍历一次即可。

写代码

建议大家了解算法原理之后自己上手敲一遍代码再看答案

相关推荐
暖焰核心3 小时前
C++内存管理和模板初阶
开发语言·c++
csdn_aspnet3 小时前
PHP 算法 LeetCode 编号 70 - 爬楼梯
算法·leetcode·php
Irissgwe3 小时前
c++智能指针
开发语言·c++
西梅汁4 小时前
C++ 线程间通信(一)
c++
沈浩(种子思维作者)4 小时前
没有错误,正确将一文不值
人工智能·python·算法·量子计算
x_xbx4 小时前
LeetCode:5. 最长回文子串
算法·leetcode·职场和发展
快手技术4 小时前
免费报名|生成式推荐技术如何实现体系化演进?快手技术沙龙第四期开启!
算法
初夏睡觉4 小时前
数字截断求和 题解
算法
AZaLEan__4 小时前
多源 BFS
java·开发语言·算法
smith成长之旅4 小时前
07 | Mem0 框架分析:三路信号融合——语义 + BM25 + Entity Boost 的混合检索
python·算法