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

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

這篇具有很好參考價(jià)值的文章主要介紹了【算法專(zhuān)題突破】雙指針 - 盛最多水的容器(4)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

1. 題目解析

2. 算法原理

3. 代碼編寫(xiě)

寫(xiě)在最后:


1. 題目解析

題目鏈接:11. 盛最多水的容器 - 力扣(Leetcode)?

【算法專(zhuān)題突破】雙指針 - 盛最多水的容器(4),算法專(zhuān)題訓(xùn)練,c++,算法

?這道題目也不難理解,

兩邊的柱子的盛水量是根據(jù)短的那邊的柱子決定的,

而盛水量就是短的柱子的高度 * 寬度即可。

2. 算法原理

?這道題可以用暴力枚舉,兩層for循環(huán),肯定是可以找到最大的盛水量,

但是作為一道中等題,用暴力會(huì)超時(shí),所以我們得想一個(gè)更好的解法。

?我們來(lái)觀察一下規(guī)律:

【算法專(zhuān)題突破】雙指針 - 盛最多水的容器(4),算法專(zhuān)題訓(xùn)練,c++,算法

以這個(gè)圖為例;

如果我們讓比較高的左邊往右遍歷,會(huì)有兩種情況:

1. 如果右邊的柱子更高,而寬度變小,盛水量減少,

2. 如果右邊的柱子更矮,寬度又變小,盛水量減少。

很明顯不太行,

那如果我們讓比較矮的右邊往左遍歷,也會(huì)有兩種情況:

1. 如果左邊的柱子更高,寬度變小,盛水量可能變小,可能不變,可能變大,

2. 如果左邊的柱子更矮,寬度變小,盛水量減少。

從上面兩種情況來(lái)看,我們可以通過(guò)不斷讓矮的一邊的柱子往中間遍歷,

記錄每次出現(xiàn)的最大值,當(dāng)遍歷完之后,我們就能得到最大值了,

而我們只遍歷了一遍,所以時(shí)間復(fù)雜度就優(yōu)化到了O(N),

具體做法就是使用雙指針來(lái)維護(hù)兩邊。?

3. 代碼編寫(xiě)

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

寫(xiě)在最后:

以上就是本篇文章的內(nèi)容了,感謝你的閱讀。

如果感到有所收獲的話(huà)可以給博主點(diǎn)一個(gè)哦。

如果文章內(nèi)容有遺漏或者錯(cuò)誤的地方歡迎私信博主或者在評(píng)論區(qū)指出~文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-684596.html

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

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

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

相關(guān)文章

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

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

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

    2024年04月17日
    瀏覽(22)
  • 【算法|雙指針系列No.4】leetcode11. 盛最多水的容器

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

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

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

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

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

    2024年02月11日
    瀏覽(28)
  • 【算法】雙指針——leetcode盛最多水的容器、劍指Offer57和為s的兩個(gè)數(shù)字

    【算法】雙指針——leetcode盛最多水的容器、劍指Offer57和為s的兩個(gè)數(shù)字

    盛水最多的容器 (1)暴力解法 ??算法思路:我們枚舉出所有的容器大小,取最大值即可。 ??容器容積的計(jì)算方式: ??設(shè)兩指針 i , j ,分別指向水槽板的最左端以及最右端,此時(shí)容器的寬度為 j - i 。由于容器的高度由兩板中的較短的板決定,因此可得容積公式 :

    2024年02月13日
    瀏覽(25)
  • 「優(yōu)選算法刷題」:盛最多水的容器

    「優(yōu)選算法刷題」:盛最多水的容器

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

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

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

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

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

    11. 盛最多水的容器

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

    2024年01月20日
    瀏覽(25)
  • 力扣-盛最多水的容器

    力扣-盛最多水的容器

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

    2024年01月15日
    瀏覽(13)
  • 力扣 | 11. 盛最多水的容器

    力扣 | 11. 盛最多水的容器

    雙指針解法–對(duì)撞指針

    2024年01月18日
    瀏覽(20)
  • leetcode 11. 盛最多水的容器

    leetcode 11. 盛最多水的容器 解題思路 :雙指針 每次向內(nèi)移動(dòng)矮的指針,因?yàn)槿绻騼?nèi)移動(dòng)高的指針,面積一定會(huì)變小;如果向內(nèi)移動(dòng)矮的指針,面積還有可能變大。

    2024年02月06日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包