国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

[Leetcode] Container With Most Water 最大盛水容器

xiguadada / 1858人閱讀

摘要:最新更新請訪問棧法復雜度時間空間思路最大盛水量取決于兩邊中較短的那條邊,而且如果將較短的邊換為更短邊的話,盛水量只會變少。所以我們可以用兩個頭尾指針,計算出當前最大的盛水量后,將較短的邊向中間移,因為我們想看看能不能把較短的邊換長一點。

Container With Most Water 最新更新請訪問:https://yanjia.me/zh/2018/11/...
Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two lines, which together with x-axis forms a container, such that the container
contains the most water.

Note: You may not slant the container.

棧法 復雜度

時間 O(N) 空間 O(N)

思路

最大盛水量取決于兩邊中較短的那條邊,而且如果將較短的邊換為更短邊的話,盛水量只會變少。所以我們可以用兩個頭尾指針,計算出當前最大的盛水量后,將較短的邊向中間移,因為我們想看看能不能把較短的邊換長一點。這樣一直計算到左邊大于右邊為止就行了。

注意

如果將較短的邊向中間移后,新的邊還更短一些,其實可以跳過,減少一些計算量

代碼
public class Solution {
    public int maxArea(int[] height) {
        int left = 0, right = height.length - 1, maxArea = 0;
        while(left < right){
            // 每次更新最大面積(盛水量)
            maxArea = Math.max(maxArea, Math.min(height[left], height[right]) * (right - left));
            // 如果左邊較低,則將左邊向中間移一點
            if(height[left] < height[right]){
                left++;
            // 如果右邊較低,則將右邊向中間移一點
            } else {
                right--;
            }
        }
        return maxArea;
    }
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64630.html

相關文章

  • leetcode11. Container With Most Water 盛水最多的容器

    摘要:題目要求給一個數組,其中數組在下標處的值為,坐標和坐標構成一條垂直于坐標軸的直線。現任取兩條垂線和軸組成四邊形容器。當左右指針相遇時,指針假設該算法并沒有遍歷到容量最大的情況我們令容量最大時的指針為和。 題目要求:給一個數組,其中數組在下標i處的值為A[i],坐標(i,A[i])和坐標(i,0)構成一條垂直于坐標軸x的直線。現任取兩條垂線和x軸組成四邊形容器。問其中盛水量最大為多少? ...

    worldligang 評論0 收藏0
  • LeetCode.11 盛最多水的容器(Container With Most Water)(JS

    摘要:一題目盛最多水的容器給定個非負整數,,,,每個數代表坐標中的一個點。在坐標內畫條垂直線,垂直線的兩個端點分別為和。找出其中的兩條線,使得它們與軸共同構成的容器可以容納最多的水。在此情況下,容器能夠容納水表示為藍色部分的最大值為。 一、題目 盛最多水的容器: 給定 n 個非負整數 a1,a2,...,an,每個數代表坐標中的一個點?(i,?ai) 。在坐標內畫 n 條垂直線,垂直線 i?...

    muddyway 評論0 收藏0
  • leetcode 11 Container With Most Water

    摘要:我們需要找出這些線所圍成的容器,能裝最多水的水量。這道題是不能用蠻力法解決的,會超時。這個解法想法是這樣的,我們用兩個變量,指向數組的起始元素和末尾元素。首先計算這兩條線所圍成的容器面積,然后移動指向較短的線段的指針。 題目詳情 Given n non-negative integers a1, a2, ..., an, where each represents a point at...

    崔曉明 評論0 收藏0
  • leetcode42 Trapping Rain Water

    摘要:我先通過堆棧的方法,找到一個封閉區間,該區間可以盛水,該區間的右節點可以作為下一個封閉區間的起點。思路三堆棧的聰明使用在這里,堆棧允許我們漸進的通過橫向分割而非之前傳統的縱向分割的方式來累加計算盛水量。 題目要求 Given n non-negative integers representing an elevation map where the width of each bar...

    GitCafe 評論0 收藏0
  • 翻轉字符串的相關題目

    摘要:一題目描述空格分隔,逐個反轉二題目描述三題目描述當然也可以用的做,不過用雙指針更快。 LeetCode: 557. Reverse Words in a String III 一、LeetCode: 557. Reverse Words in a String III 題目描述 Given a string, you need to reverse the order of chara...

    lykops 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<