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, heighti).

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 <= heighti <= 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)

相关推荐
Albart57511 小时前
Python 实战教程:用 30 分钟学会解决真实问题
开发语言·python
2301_7736436211 小时前
ceph池
开发语言·ceph·python
极客笔记Jack11 小时前
Scanpy AnnData 对象深度解析:高效操作数据结构的10个技巧
python
颜酱12 小时前
LangChain调用向量模型,存入向量数据库
python·langchain
2501_9289455212 小时前
七本性全面签名体系:从互递归类型到∞-范畴生成语法
python
如何原谅奋力过但无声12 小时前
【灵神高频面试题合集09-13】二叉树、二叉搜索树
数据结构·算法·leetcode
2601_9611940213 小时前
考研资料电子版|去哪找|网盘
java·c语言·c++·python·考研·php
veminhe13 小时前
关于下载pip install faiss-cpu失败的问题
python·pip·faiss
战族狼魂13 小时前
从零构建企业级Hermes-Agent:复杂任务拆解、工具协同与安全落地实践
开发语言·人工智能·python
belong_my_offer13 小时前
可视化各种库的用法并区分其作用
python