LeetCode 11 Container with Most Water 解题思路和python代码

题目:

You are given an integer array height of length n. There are n vertical lines drawn such that the two endpoints of the ith line are (i, 0) and (i, height[i]).

Find two lines that together with the x-axis form a container, such that the container contains the most water.

Return the maximum amount of water a container can store.

Notice that you may not slant the container.

Example 1:

Input: height = [1,8,6,2,5,4,8,3,7]

Output: 49

Explanation: The above vertical lines are represented by array [1,8,6,2,5,4,8,3,7]. In this case, the max area of water (blue section) the container can contain is 49.

Example 2:

Input: height = [1,1]

Output: 1

Constraints:

n == height.length

2 <= n <= 105

0 <= height[i] <= 104

解题思路:

我们可以看到这里水的体积多少取决于两边的竖直线中较短的那一条。我们可以使用两个指针,一个指向数组的第一个数,另一个指向数组的第二个数。我们可以计算面积,同时移动两个指针中,指向较短竖直线的那一个。

python 复制代码
class Solution:
    def maxArea(self, height: List[int]) -> int:
        left = 0
        right = len(height) - 1
        max_area = 0
        
        while left < right:
        	# Calculate the current area 
            width = right - left
            current_area = min(height[left], height[right]) * width

			# Update max_area if the current one is larger
            max_area = max(max_area, current_area)

			# Move the pointer that points to the shorter line
            if height[left] < height[right]:
                left += 1
            else:
                right -= 1
        return max_area
        

Time Complexity 是 O(n)

Space Complexity 是 O(1)

相关推荐
AllFiles2 分钟前
用Python turtle画出标准五星红旗,原来国旗绘制有这么多数学奥秘!
python
亲爱的非洲野猪8 分钟前
Java线程池深度解析:从原理到最佳实践
java·网络·python
用户13779404999320 分钟前
基于遗传算法实现自动泊车+pygame可视化
python
4***175426 分钟前
强化学习中的蒙特卡洛方法
python
pen-ai29 分钟前
打通 Python 与 C++ 的参数传递机制
开发语言·c++·python
至此流年莫相忘40 分钟前
Python之深拷贝和浅拷贝
python
像风一样自由20201 小时前
XGBoost、LightGBM、CatBoost 原理深度剖析与全面对比
python
用户230826676651 小时前
Python的管道符(|)联合类型语法糖
python
东木月1 小时前
使用python获取Windows产品标签
开发语言·windows·python
AIFQuant1 小时前
2026 越南证券交易所(VN30, HOSE)API 接口指南
大数据·后端·python·金融·restful