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

1.题目解析

2.解题

2.1暴力解法(遍历)

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

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

2.2更优解

思路

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

就本题给出的示例:

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

b.计算容积

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

d.得出结论:

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

写代码

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

相关推荐
迷途之人不知返20 小时前
lambda表达式
c++
jarvisuni20 小时前
DeepSeekFlash前端依旧拉垮,而且变慢了很多!
前端·javascript·算法
@三十一Y20 小时前
C++:红黑树的实现
开发语言·c++
kobesdu21 小时前
流形上的优化:SO(3)与SE(3)的广义加减法在FAST-LIO中如何简化状态估计
人工智能·算法·fastlio
_wyt00121 小时前
拓扑排序:有向无环图的排队艺术
c++·拓扑排序·队列
皓月斯语21 小时前
B2118 验证子串
c++·题解
白狐_79821 小时前
408 数据结构算法题 01:线性表暴力求解保分指南
java·数据结构·算法
乐观勇敢坚强的老彭21 小时前
C++信奥:开关门、开关灯问题
开发语言·c++·算法
冻柠檬飞冰走茶21 小时前
PTA基础编程题目集 7-31 字符串循环左移(C语言实现)
c语言·开发语言·数据结构·算法
Hi李耶21 小时前
【LeetCode】4-寻找两个正序数组的中位数
算法·leetcode·职场和发展