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

每日一題:LeetCode-11.盛水最多的容器

這篇具有很好參考價值的文章主要介紹了每日一題:LeetCode-11.盛水最多的容器。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

每日一題系列(day 13)

前言:

?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??

?? ????如果說代碼有靈魂,那么它的靈魂一定是????算法????,因此,想要寫出??優(yōu)美的程序??,核心算法是必不可少的,少年,你渴望力量嗎????,想掌握程序的靈魂嗎???那么就必須踏上這樣一條漫長的道路????,我們要做的,就是斬妖除魔????,打怪升級!????當(dāng)然切記不可??走火入魔??,每日打怪,拾取經(jīng)驗,終能成圣????!開啟我們今天的斬妖之旅吧!????


題目:

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

示例:

每日一題:LeetCode-11.盛水最多的容器,每日一題,leetcode,算法,職場和發(fā)展

提示:

  • n == height.length
  • 2 <= n <= 105
  • 0 <= height[i] <= 104
  • 說明:你不能傾斜容器。

思路:

??首先,我們可以使用暴力解法,兩層for循環(huán)枚舉所有情況,枚舉完所有情況將最大的值返回即可。
??但是我們的暴力解法時間復(fù)雜度是比較高的,對于這題來說,暴力解法應(yīng)該是不能通過的,有興趣的小伙伴可以自己嘗試。

??我們觀察示例,其實不難看出,這題我們可以使用雙指針來解決:雙指針解決的問題:
??1、首先,我們可以先設(shè)置兩個指針left,right,一個指向數(shù)組的首元素下標(biāo),一個指向數(shù)組,我們在設(shè)置一個max變量,用來記錄容器的最大體積。
??2、我們按照題目,設(shè)置一個局部變量v用來表示當(dāng)前體積,然后比較當(dāng)前體積v與最大體積max,返回兩個數(shù)中的較大值。
??3、接著,如果左指針指向的值小于右指針指向的值,那么就將左指針右移,反之我們將右指針左移。
??4、有人可能會問,這樣遍歷的方式并不會將所有的情況枚舉出來,那么還能保證正確性嗎?舉個例子,我們最開始的時候,左邊和最右邊可以得到一個體積v,而如果讓比較小的那個指針向兩指針區(qū)間枚舉,這個得到的體積一定是小于原有的v的,同理,右指針也是如此:每日一題:LeetCode-11.盛水最多的容器,每日一題,leetcode,算法,職場和發(fā)展
??5、接下來我們就一直進行循環(huán)即可,最后得到的max值就是最大的蓄水池體積。

每日一題:LeetCode-11.盛水最多的容器,每日一題,leetcode,算法,職場和發(fā)展

代碼實現(xiàn):

class Solution {
public:
    int maxArea(vector<int>& height) {
        int left = 0, right = height.size() - 1, ret = 0;//ret為最大的體積
        while(left < right)//兩指針相遇即結(jié)束
        {
            int v = min(height[left], height[right]) * (right - left);//將本次的體積算出來
            ret = max(v, ret);//與之前保存的最大體積比較,如果大于最大體積則刷新ret,否則ret不變

            if(height[left] < height[right]) left++;//哪個指針較小我們就移動哪個指針
            else right--;
        }
        return ret;//最后返回最大體積即可
    }
};

每日一題:LeetCode-11.盛水最多的容器,每日一題,leetcode,算法,職場和發(fā)展


??其實這題的雙指針寫法很難想,只能說多做,累積經(jīng)驗,這類型的題目接觸多了或許就可以秒殺,反正我是做不到。文章來源地址http://www.zghlxwxcb.cn/news/detail-772013.html

到了這里,關(guān)于每日一題:LeetCode-11.盛水最多的容器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Leetcode-每日一題【劍指 Offer 11. 旋轉(zhuǎn)數(shù)組的最小數(shù)字】

    Leetcode-每日一題【劍指 Offer 11. 旋轉(zhuǎn)數(shù)組的最小數(shù)字】

    把一個數(shù)組最開始的若干個元素搬到數(shù)組的末尾,我們稱之為數(shù)組的旋轉(zhuǎn)。 給你一個可能存在?重復(fù)?元素值的數(shù)組?numbers?,它原來是一個升序排列的數(shù)組,并按上述情形進行了一次旋轉(zhuǎn)。請返回旋轉(zhuǎn)數(shù)組的最小元素。例如,數(shù)組?[3,4,5,1,2] 為 [1,2,3,4,5] 的一次旋轉(zhuǎn),該數(shù)組的

    2024年02月14日
    瀏覽(21)
  • 2023/07/11_leetcode每日一題_16. 最接近的三數(shù)之和

    給你一個長度為 n 的整數(shù)數(shù)組 nums 和 一個目標(biāo)值 target。請你從 nums 中選出三個整數(shù),使它們的和與 target 最接近。 返回這三個數(shù)的和。 假定每組輸入只存在恰好一個解。 和三數(shù)之和那道題一樣,排序加雙指針

    2024年02月15日
    瀏覽(23)
  • leetcode每日一題44

    圖論 dfs/bfs dfs代碼框架 思路:本題要求找到被x圍繞的陸地,所以邊界的陸地O肯定不符合條件。那么我們只要從周邊找到陸地O然后 通過 dfs或者bfs 將周邊靠陸地且相鄰的陸地O都變成A,然后再去重新遍歷地圖的時候,把剩下的O變成X,再把所有的A變成O。 確認(rèn)遞歸函數(shù),參數(shù)

    2024年01月19日
    瀏覽(28)
  • 【LeetCode每日一題】——85.最大矩形

    【LeetCode每日一題】——85.最大矩形

    矩陣 困難 85.最大矩形 給定一個僅包含 0 和 1 、大小為 rows x cols 的二維二進制矩陣,找出只包含 1 的最大矩形,并返回其面積。 示例 1: 輸入:matrix = [[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“1”,“1”,“1”,“1”],[“1”,“0”,“0”,“1”,“

    2024年02月13日
    瀏覽(19)
  • 【LeetCode】每日一題:移除元素

    【LeetCode】每日一題:移除元素

    目錄 ?題目: 思想1:暴力解法 思想2:創(chuàng)建一個temp數(shù)組? 思想3:雙指針 ??內(nèi)容專欄:《LeetCode刷題專欄》 ??本文概括: 27.移除元素 ??本文作者:花 碟 ??發(fā)布時間:2023.4.15 https://leetcode.cn/problems/remove-element/? ?點擊跳轉(zhuǎn)到LeetCode平臺OJ頁面(27.移除元素) ??? 示例1: 解

    2023年04月19日
    瀏覽(23)
  • 每日一題:leetcode 57 插入?yún)^(qū)間

    給你一個 ?無重疊的 ?, 按照區(qū)間起始端點排序的區(qū)間列表。 在列表中插入一個新的區(qū)間,你需要確保列表中的區(qū)間仍然有序且不重疊(如果有必要的話,可以合并區(qū)間)。 示例 1: 示例 2: 示例 3: 示例 4: 示例 5: 提示: 0 = intervals.length = 104 intervals[i].length == 2 0 = int

    2024年02月11日
    瀏覽(21)
  • 【LeetCode每日一題】——566.重塑矩陣

    【LeetCode每日一題】——566.重塑矩陣

    矩陣 簡單 566.重塑矩陣 在 MATLAB 中,有一個非常有用的函數(shù) reshape ,它可以將一個 m x n 矩陣重塑為另一個大小不同(r x c)的新矩陣,但保留其原始數(shù)據(jù)。 給你一個由二維數(shù)組 mat 表示的 m x n 矩陣,以及兩個正整數(shù) r 和 c ,分別表示想要的重構(gòu)的矩陣的行數(shù)和列數(shù)。 重構(gòu)后

    2024年02月14日
    瀏覽(18)
  • leetcode每日一題:62. 不同路徑

    leetcode每日一題:62. 不同路徑

    系列:動態(tài)規(guī)劃 語言:java 難度:中等 題目來源:Leetcode62. 不同路徑 開啟動態(tài)規(guī)劃章節(jié)了?。g迎您在留言和我一起完成每日打卡,以后每天8點半前發(fā)布每日一題。 原題鏈接:Leetcode62. 不同路徑 一個機器人位于一個 m x n 網(wǎng)格的左上角 (起始點在下圖中標(biāo)記為 “Start” )

    2023年04月22日
    瀏覽(18)
  • 【每日一題】Leetcode - 283. 移動零

    【每日一題】Leetcode - 283. 移動零

    Leetcode - 283. 移動零 從右向左遍歷,遇到0,就將后面所有元素前移,同時更新長度,使其減1,因為移動n次,倒數(shù)n位就被0占據(jù),后續(xù)操作可忽略 前面的操作,從右向左,每次遇到0移動都要跑半個數(shù)組,慢在整體前移; 換個思路,從左向右,記錄首個0的位置,將后面的第一

    2024年02月11日
    瀏覽(14)
  • 每日一題(LeetCode)----二分查找(一)

    給定一個排序數(shù)組和一個目標(biāo)值,在數(shù)組中找到目標(biāo)值,并返回其索引。如果目標(biāo)值不存在于數(shù)組中,返回它將會被按順序插入的位置。 請必須使用時間復(fù)雜度為 O(log n) 的算法。 示例 1: 示例 2: 示例 3: 提示: 1 = nums.length = 104 -104 = nums[i] = 104 nums 為 無重復(fù)元素 的 升序 排列數(shù)

    2024年02月08日
    瀏覽(22)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包