iT邦幫忙

2022 iThome 鐵人賽

DAY 6
0
自我挑戰組

LeetCode Top 100 Liked系列 第 6

[Day 06] Container With Most Water (Medium)

  • 分享至 

  • xImage
  •  

11. Container With Most Water

Question

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

  1. 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.

Solution 1: Brute Force (TLC)

class Solution:
    def maxArea(self, height: List[int]) -> int:
        n = len(height)
        ans = 0
        for i in range(n-1):
            for j in range(i+1, n):
                minHght = min(height[i], height[j])
                product = minHght * (j - i)
                ans = max(ans, product)
        return ans

Time Complexity: O(N^2)
Space Complexity: O(1)

Solution 2: Two Pointer

class Solution:
    def maxArea(self, height: List[int]) -> int:
        n = len(height)
        ans = 0
        i = 0
        j = n - 1
        while(i < j):
            minHght = min(height[i], height[j])
            product = minHght * (j - i)
            ans = max(ans, product)
            
            if height[i] < height[j]:
                i += 1
            else:
                j -= 1
                
        return ans

Time Complexity: O(N)
Space Complexity: O(1)

Reference

https://www.cnblogs.com/grandyang/p/4455109.html

Follow-up: Trapping Rain Water

TODO

Time Complexity: O()
Space Complexity: O()


上一篇
[Day 05] Maximum Subarray (Easy)、Reverse Integer (Easy)
下一篇
[Day 07] Trapping Rain Water (Hard)
系列文
LeetCode Top 100 Liked77
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言