盛最多容器的水

近似的理解为找最大的矩形
我最开始的思路是暴力解法:
通过两个for循环遍历出所有可能的矩形,并求出其面积,然后每次将面积与max变量比较,将max更新为最大的值,然而超出时间限制
双指针
双指针是大多数是对于双层for循环的一个优化,从时间复杂度来说,双层for循环就是n^2,效率不高,利用双指针可以降低时间复杂度。
要应用双指针,要涉及到限制的满足条件,就是说指针移动到某一个位置的时候,就可以跳出循环了。
难点:
双指针的移动条件,要从题目出发,这里要找到能容纳最多水量的矩阵,当左指针的数值小于右指针时,如果我们移动的是右指针,那么
我们的高不会变(因为是以最矮的来看),由于右指针往左边移动了,那么长就会减小,所以只要是移动高的,那么容器面积就会变小,从
而得出是移动数值小的指针,这样才有可能变得更大。
浙公网安备 33010602011771号