LeetCode-Algorithms- 11.盛水最多的容器

1.題目描述

? 給定 n 個(gè)非負(fù)整數(shù) a_1a_2幻工,...励两,a_n,每個(gè)數(shù)代表坐標(biāo)中的一個(gè)點(diǎn) (i, a_i) 囊颅。在坐標(biāo)內(nèi)畫 n 條垂直線当悔,垂直線 i 的兩個(gè)端點(diǎn)分別為 (i, a_i) 和 (i, 0)。 找出其中的兩條線踢代,使得它們與 x 軸共同構(gòu)成的容器可以容納最多的水盲憎。
? 說明:你不能傾斜容器,且 n 的值至少為 2胳挎。
圖中垂直線代表輸入數(shù)組 [1,8,6,2,5,4,8,3,7]饼疙。在此情況下,容器能夠容納水(表示為藍(lán)色部分)的最大值為 49串远。
示例:
        輸入: [1,8,6,2,5,4,8,3,7]
        輸出: 49

2.提交記錄

方法一:暴力枚舉法
11.暴力枚舉法.png
方法二:雙指針法
11.雙指針法.png

3.算法思想

這道題目的意思是在輸入的int *height中宏多,找到兩個(gè)數(shù)字使得他們?cè)谧鴺?biāo)軸上圍成的面積最大。

方法一:暴力枚舉法澡罚。

使用兩層循環(huán)伸但,對(duì)每種可能進(jìn)行暴力枚舉。但是這種方法使得時(shí)間復(fù)雜度較高留搔,速度較慢更胖。

方法二:雙指針法。

為了降低時(shí)間復(fù)雜度,我們?cè)谟删€段長(zhǎng)度構(gòu)成的數(shù)組中使用兩個(gè)指針却妨,一個(gè)放在開始饵逐,一個(gè)置于末尾,即定義兩個(gè)整型指針 left 和 right 彪标,使得left = 0倍权;right = heightSize - 1。

由題意得捞烟,面積的初始值為*(height + left) * (right -left)薄声。為了確保面積最大,我們會(huì)找出兩個(gè)指針?biāo)赶虻膬蓷l線段形成的區(qū)域题画,持續(xù)更新最大面積默辨,每次 *(height + left) 和 *(height + right) 值較小的一方,都要往數(shù)組中間移動(dòng)一步苍息。

4.實(shí)現(xiàn)過程

方法一:暴力枚舉

int maxArea(int* height, int heightSize){
    int max = 0,temp = 0;
    for(int i = 0;i < heightSize-1;i++){        
        for(int j = i+1;j < heightSize;j++){            
            if(*(height+i) < *(height+j)){
                temp = (*(height+i) * (j-i)) ;
            }else{
                temp = (*(height+j) * (j-i)) ;
            }
            if(max < temp){ max = temp; }
        }
    }
    return max;
}

方法二:雙指針法

int maxArea(int* height, int heightSize){

    int left = 0 , right = heightSize - 1;
    int max = 0,temp = 0;
    while(left < right){
        if( *(height + left) < *(height + right) ){
            temp = *(height + left) * (right - left) ; 
            left++;
        }else{
            temp = *(height + right) * (right - left)  ;
            right--;
        } 
        if(max < temp){ max = temp; }
    }
    return max;
}

5.復(fù)雜度分析

方法一:暴力枚舉法

  • 時(shí)間復(fù)雜度:O(n2)缩幸;
  • 空間復(fù)雜度:O(1);

方法二:雙指針法

  • 時(shí)間復(fù)雜度:O(n)竞思;
  • 空間復(fù)雜度:O(1)表谊;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市衙四,隨后出現(xiàn)的幾起案子铃肯,更是在濱河造成了極大的恐慌,老刑警劉巖传蹈,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件押逼,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡惦界,警方通過查閱死者的電腦和手機(jī)挑格,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沾歪,“玉大人漂彤,你說我怎么就攤上這事≡植” “怎么了挫望?”我有些...
    開封第一講書人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)狂窑。 經(jīng)常有香客問我媳板,道長(zhǎng),這世上最難降的妖魔是什么泉哈? 我笑而不...
    開封第一講書人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任蛉幸,我火速辦了婚禮破讨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘奕纫。我一直安慰自己提陶,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開白布匹层。 她就那樣靜靜地躺著隙笆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪升筏。 梳的紋絲不亂的頭發(fā)上仲器,一...
    開封第一講書人閱讀 51,521評(píng)論 1 304
  • 那天,我揣著相機(jī)與錄音仰冠,去河邊找鬼。 笑死蝶糯,一個(gè)胖子當(dāng)著我的面吹牛洋只,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播昼捍,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼识虚,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了妒茬?” 一聲冷哼從身側(cè)響起担锤,我...
    開封第一講書人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎乍钻,沒想到半個(gè)月后肛循,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡银择,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年多糠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片浩考。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡夹孔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出析孽,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布适肠,位于F島的核電站效床,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏吞滞。R本人自食惡果不足惜佑菩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一盾沫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧殿漠,春花似錦赴精、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至莲蜘,卻和暖如春谭确,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背票渠。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工逐哈, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人问顷。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓昂秃,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親杜窄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子肠骆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 給定 n 個(gè)非負(fù)整數(shù) a1,a2塞耕,...蚀腿,an,每個(gè)數(shù)代表坐標(biāo)中的一個(gè)點(diǎn) (i, ai) 扫外。在坐標(biāo)內(nèi)畫 n 條垂直...
    小小堯閱讀 489評(píng)論 0 0
  • 盛最多水的容器 題目敘述: 給定 n 個(gè)非負(fù)整數(shù) a1莉钙,a2,...筛谚,an胆胰,每個(gè)數(shù)代表坐標(biāo)中的一個(gè)點(diǎn) (i, ai...
    一萍之春閱讀 765評(píng)論 0 5
  • 給定 n 個(gè)非負(fù)整數(shù) a1,a2刻获,...蜀涨,an,每個(gè)數(shù)代表坐標(biāo)中的一個(gè)點(diǎn) (i, ai) 蝎毡。在坐標(biāo)內(nèi)畫 n 條垂直...
    LeeYunFeng閱讀 685評(píng)論 0 50
  • 題目介紹 題目:盛最多水的容器描述:給定 n 個(gè)非負(fù)整數(shù) a1, a2, ..., an厚柳,每個(gè)數(shù)代表坐標(biāo)中的一個(gè)點(diǎn)...
    大大紙飛機(jī)閱讀 553評(píng)論 0 2
  • 復(fù)雜的對(duì)話可以分享經(jīng)驗(yàn),豐富認(rèn)知沐兵,促進(jìn)思維别垮,溝通心靈,增進(jìn)情感扎谎、提升興趣碳想,使學(xué)習(xí)活動(dòng)超越個(gè)體烧董,成為一種社會(huì)性的活動(dòng)...
    土左旗047張荷霏閱讀 436評(píng)論 2 3