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

1.题目解析

2.解题

2.1暴力解法(遍历)

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

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

2.2更优解

思路

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

就本题给出的示例:

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

b.计算容积

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

d.得出结论:

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

写代码

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

相关推荐
Jerry3 小时前
LeetCode 1047. 删除字符串中的所有相邻重复项
算法
可编程芯片开发5 小时前
基于霍尔传感器和PID控制器的有功功率检测控制系统simulink建模与仿真
算法
To_OC5 小时前
LC 17 电话号码的字母组合:我的回溯算法,就是从这道题开窍的
javascript·算法·leetcode
blueman88886 小时前
Qt5通过vcpkg中调用时,在debug模式下调试时总是调用release的plugins文件夹中的dll
c++·qt·cmake
战族狼魂8 小时前
GPT-5.6与Grok 4.5重磅发布
人工智能·算法·大模型·大语言模型
白日焰火18 小时前
基于 OpenSpec 实现规范驱动开发
算法·交互
jinyishu_9 小时前
C++ string使用方法
开发语言·c++
imuliuliang9 小时前
关于图搜索算法的性能建模与可预测性研究7
算法
乐观勇敢坚强的老彭9 小时前
C++浮点数使用注意事项
开发语言·c++
库克克9 小时前
【C++ 】内联函数
java·开发语言·c++