Python作业—— Leetcode题目选做(1)

11Container With Most Water

题目内容:

Python作业—— Leetcode题目选做(1)

解题思路1:

使用两个循环变量进行遍历,计算出数组中每两个所对应的面积。通过不断比较得到其中的最大值。

代码1:

Python作业—— Leetcode题目选做(1)

出现错误:(超时)

Python作业—— Leetcode题目选做(1)

错误分析:

算法时间复杂度为O(n2)。故要寻找一个更有效率的方法。


解题思路2:

首先计算出宽度最大时的面积,然后不断缩减宽度直至宽度为0。过程中,每一次减少宽度时,由于宽度降低,只有将长度更小的那一条边变化才有可能获得更大的面积,所以每次是将长度较小的那一条边向内靠近,靠近后再次计算得到新的面积进行比较。最后,宽度降为0后,得到最大面积。

代码2:

Python作业—— Leetcode题目选做(1)

提交成功:

Python作业—— Leetcode题目选做(1)


11Container With Most Water