鱼C论坛

 找回密码
 立即注册
查看: 2074|回复: 1

[技术交流] 【朱迪的LeetCode刷题笔记】】11. Container With Most Water #Medium #Python

[复制链接]
发表于 2023-6-6 14:24:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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

Hint
(1/3)

If you simulate the problem, it will be O(n^2) which is not efficient.

Hint
(2/3)

Try to use two-pointers. Set one pointer to the left and one to the right of the array. Always move the pointer that points to the lower line.

Hint
(3/3)

How can you calculate the amount of water at each step?

Judy
Python inspired by hints
class Solution(object):
    def maxArea(self, height):
        """
        :type height: List[int]
        :rtype: int
        """
        l = len(height)
        i = 0
        j = l-1
        c = 0
        while i != j:
            if height[i] < height[j]:
                if (j-i) * height[i] > c:
                    c = (j-i) * height[i]
                i += 1
            else:
                if (j-i) * height[j] > c:
                    c = (j-i) * height[j]
                j -= 1
        return c

Screen Shot 2023-06-06 at 2.23.58 AM.png

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-7 08:12:24 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 10:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表