国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【算法|雙指針系列No.4】leetcode11. 盛最多水的容器

這篇具有很好參考價(jià)值的文章主要介紹了【算法|雙指針系列No.4】leetcode11. 盛最多水的容器。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

個(gè)人主頁:兜里有顆棉花糖
歡迎 點(diǎn)贊?? 收藏? 留言? 加關(guān)注??本文由 兜里有顆棉花糖 原創(chuàng)
收錄于專欄【手撕算法系列專欄】【LeetCode】
??本專欄旨在提高自己算法能力的同時(shí),記錄一下自己的學(xué)習(xí)過程,希望對大家有所幫助
??希望我們一起努力、成長,共同進(jìn)步。
【算法|雙指針系列No.4】leetcode11. 盛最多水的容器,LeetCode,手撕算法系列專欄,算法,leetcode,雙指針

點(diǎn)解直接跳轉(zhuǎn)到該題目

1??題目描述

給定一個(gè)長度為 n 的整數(shù)數(shù)組 height 。有 n 條垂線,第 i 條線的兩個(gè)端點(diǎn)是 (i, 0)(i, height[i]) 。

找出其中的兩條線,使得它們與 x 軸共同構(gòu)成的容器可以容納最多的水。

返回容器可以儲存的最大水量。

說明:你不能傾斜容器。

示例1:

【算法|雙指針系列No.4】leetcode11. 盛最多水的容器,LeetCode,手撕算法系列專欄,算法,leetcode,雙指針

輸入:[1,8,6,2,5,4,8,3,7]
輸出:49
解釋:圖中垂直線代表輸入數(shù)組 [1,8,6,2,5,4,8,3,7]。在此情況下,容器能夠容納水(表示為藍(lán)色部分)的最大值為 49。

示例2:

輸入:height = [1,1]
輸出:1

注意:

  • n == height.length
  • 2 <= n <= 105
  • 0 <= height[i] <= 104

2??算法分析

通過不斷地調(diào)整較短的邊界來尋找可能的最大容量。因?yàn)槿萜鞯娜萘渴芟抻谳^短的邊界,所以選擇移動較短的邊界可以增加容器的高度,有可能得到更大的容量。通過不斷縮小指針之間的寬度,直到指針重合,即可得到最大容量。

容器容量:v = s * h,由于我們這里不斷移動兩個(gè)“指針”,所以 s 是不斷變小的,那么問題來了,我們要移動哪個(gè)指針呢(是向右移動左指針的,還是向左移動右指針呢?),我們要知道無論我們移動哪一個(gè)指針容器的 s 都是減小的,此時(shí)如果要使得容器容量增大,我們需要移動指針指向的值較小的那個(gè)指針。舉個(gè)例子(1,9),我們此時(shí)就需要向右移動左指針了,因?yàn)槲覀冎挥幸苿幼笾羔槻庞锌赡苁沟萌萜鞯娜萜魅萘孔兇螅赐ㄟ^增加h的方式)。
即:文章來源地址http://www.zghlxwxcb.cn/news/detail-736500.html

if(height[l] < height[r]) l++;
else r--; 

3??代碼編寫

class Solution {
public:
    int maxArea(vector<int>& height) {
        int l = 0,r = height.size() - 1,ret = 0;
        while(l < r)
        {
            int v = (r - l) * min(height[l],height[r]);
            ret = max(v,ret);
            if(height[l] < height[r]) l++;
            else r--; 
        }
        return ret;
    }
};

到了這里,關(guān)于【算法|雙指針系列No.4】leetcode11. 盛最多水的容器的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • LeetCode_11. 盛最多水的容器

    11. 盛最多水的容器 - 力扣(LeetCode) https://leetcode.cn/problems/container-with-most-water/ ? ? ? ? 這題就是典型的是一道很經(jīng)典的面試題,最優(yōu)的解法是雙指針,但很多人在第一次看到這題的時(shí)候很難想到用雙指針來解(比如我)。好了,話不多說上解法: 首先我們設(shè)兩個(gè)left和righ

    2024年02月14日
    瀏覽(32)
  • 【算法專題】雙指針—盛最多水的容器

    【算法專題】雙指針—盛最多水的容器

    ? 分析這個(gè)題目不難得出一個(gè) 容積公式 ? 解法一:暴力枚舉(超時(shí)) 套用上述的容積公式,使用 兩個(gè)for循環(huán) 來枚舉出所有可能的情況,再挑出最大值即可,但是這種寫法會超時(shí),導(dǎo)致不通過。時(shí)間復(fù)雜度是O(n^2) 可以自己去嘗試一下。? 解法二:雙指針? 設(shè)兩個(gè)指針 left,

    2024年02月06日
    瀏覽(18)
  • 【LeetCode力扣】11. 盛最多水的容器 (中等)

    【LeetCode力扣】11. 盛最多水的容器 (中等)

    ? 目錄 1、題目介紹 2、解題 2.1、解題思路 ?2.2、圖解說明 ?2.3、解題代碼 原題鏈接: 11. 盛最多水的容器 - 力扣(LeetCode) 示例 2: 提示: n == height.length 2 = n = 105 0 = height[i] = 104 這道題最優(yōu)的方法就是用雙指針,我們可以用指針 left 和指針 right 分別指向數(shù)組 height[ ] 的第一

    2024年02月06日
    瀏覽(18)
  • 【算法】雙指針求解盛最多水的容器

    【算法】雙指針求解盛最多水的容器

    Problem: 11. 盛最多水的容器 首先我們來解析一下本題 題目中說到,要找出其中的兩條線, 使得它們與 x 軸共同構(gòu)成的容器可以容納最多的水 。 那我們現(xiàn)在來看最外側(cè)的兩根,一個(gè)高度為8,一個(gè)則為7,那我們肯定選擇高度為7的, 如果選擇8的話就會出現(xiàn)溢出的問題 ;我們這

    2024年02月11日
    瀏覽(21)
  • 【算法專題突破】雙指針 - 盛最多水的容器(4)

    【算法專題突破】雙指針 - 盛最多水的容器(4)

    目錄 1. 題目解析 2. 算法原理 3. 代碼編寫 寫在最后: 題目鏈接:11. 盛最多水的容器 - 力扣(Leetcode)? ?這道題目也不難理解, 兩邊的柱子的盛水量是根據(jù)短的那邊的柱子決定的, 而盛水量就是短的柱子的高度 * 寬度即可。 ?這道題可以用暴力枚舉,兩層for循環(huán),肯定是可

    2024年02月10日
    瀏覽(20)
  • LeetCode_11_中等_盛最多水的容器

    LeetCode_11_中等_盛最多水的容器

    給定一個(gè)長度為 n n n 的整數(shù)數(shù)組 h e i g h t height h e i g h t 。有 n n n 條垂線,第 i i i 條線的兩個(gè)端點(diǎn)是 ( i , 0 ) (i, 0) ( i , 0 ) 和 ( i , h e i g h t [ i ] ) (i, height[i]) ( i , h e i g h t [ i ]) 。 找出其中的兩條線,使得它們與 x x x 軸共同構(gòu)成的容器可以容納最多的水。 返回容器可以儲存的

    2024年01月24日
    瀏覽(23)
  • 【優(yōu)選算法】雙指針 -- 快樂數(shù) 和 盛最多水的容器

    【優(yōu)選算法】雙指針 -- 快樂數(shù) 和 盛最多水的容器

    前言: ??個(gè)人博客:Dream_Chaser ??刷題專欄:優(yōu)選算法篇 ??本篇內(nèi)容:03快樂數(shù) 和 04盛最多水的容器 目錄 一、快樂數(shù)(medium) 1. 題?鏈接:202. 快樂數(shù) 2. 題?描述: 3. 題?分析: 4.算法原理 二、盛最多水的容器 1. 題?鏈接:11.盛最多水的容器 - 力扣(LeetCode) 2. 題?描述

    2024年04月17日
    瀏覽(22)
  • 【算法挨揍日記】day02——雙指針?biāo)惴╛快樂數(shù)、盛最多水的容器

    【算法挨揍日記】day02——雙指針?biāo)惴╛快樂數(shù)、盛最多水的容器

    202.?快樂數(shù) https://leetcode.cn/problems/happy-number/ 編寫一個(gè)算法來判斷一個(gè)數(shù)? n ?是不是快樂數(shù)。 「快樂數(shù)」 ?定義為: 對于一個(gè)正整數(shù),每一次將該數(shù)替換為它每個(gè)位置上的數(shù)字的平方和。 然后重復(fù)這個(gè)過程直到這個(gè)數(shù)變?yōu)?1,也可能是? 無限循環(huán) ?但始終變不到 1。 如果這

    2024年02月11日
    瀏覽(28)
  • 【力扣算法12】之 11. 盛最多水的容器 python

    【力扣算法12】之 11. 盛最多水的容器 python

    給定一個(gè)長度為 n 的整數(shù)數(shù)組 height 。有 n 條垂線,第 i 條線的兩個(gè)端點(diǎn)是 (i, 0) 和 (i, height[i]) 。 找出其中的兩條線,使得它們與 x 軸共同構(gòu)成的容器可以容納最多的水。 返回容器可以儲存的最大水量。 說明 :你不能傾斜容器。 輸入:[1,8,6,2,5,4,8,3,7] 輸出:49 解釋:圖中垂

    2024年02月16日
    瀏覽(21)
  • 11. 盛最多水的容器

    11. 盛最多水的容器

    給定一個(gè)長度為? n ?的整數(shù)數(shù)組? height ?。有? n ?條垂線,第? i ?條線的兩個(gè)端點(diǎn)是? (i, 0) ?和? (i, height[i]) ?。 找出其中的兩條線,使得它們與? x ?軸共同構(gòu)成的容器可以容納最多的水。 返回容器可以儲存的最大水量。 說明: 你不能傾斜容器。 示例 1: 示例 2: 提示

    2024年01月20日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包