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

資訊專欄INFORMATION COLUMN

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

xiguadada / 1863人閱讀

摘要:最新更新請?jiān)L問棧法復(fù)雜度時(shí)間空間思路最大盛水量取決于兩邊中較短的那條邊,而且如果將較短的邊換為更短邊的話,盛水量只會變少。所以我們可以用兩個(gè)頭尾指針,計(jì)算出當(dāng)前最大的盛水量后,將較短的邊向中間移,因?yàn)槲覀兿肟纯茨懿荒馨演^短的邊換長一點(diǎn)。

Container With Most Water 最新更新請?jiān)L問: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.

棧法 復(fù)雜度

時(shí)間 O(N) 空間 O(N)

思路

最大盛水量取決于兩邊中較短的那條邊,而且如果將較短的邊換為更短邊的話,盛水量只會變少。所以我們可以用兩個(gè)頭尾指針,計(jì)算出當(dāng)前最大的盛水量后,將較短的邊向中間移,因?yàn)槲覀兿肟纯茨懿荒馨演^短的邊換長一點(diǎn)。這樣一直計(jì)算到左邊大于右邊為止就行了。

注意

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

代碼
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));
            // 如果左邊較低,則將左邊向中間移一點(diǎn)
            if(height[left] < height[right]){
                left++;
            // 如果右邊較低,則將右邊向中間移一點(diǎn)
            } else {
                right--;
            }
        }
        return maxArea;
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/64630.html

相關(guān)文章

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

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

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

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

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

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

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

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

    GitCafe 評論0 收藏0
  • 翻轉(zhuǎn)字符串的相關(guān)題目

    摘要:一題目描述空格分隔,逐個(gè)反轉(zhuǎn)二題目描述三題目描述當(dāng)然也可以用的做,不過用雙指針更快。 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

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<