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

【程序員面試金典】面試題 17.21. 直方圖的水量

這篇具有很好參考價(jià)值的文章主要介紹了【程序員面試金典】面試題 17.21. 直方圖的水量。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

題目描述

描述:給定一個(gè)直方圖(也稱柱狀圖),假設(shè)有人從上面源源不斷地倒水,最后直方圖能存多少水量?直方圖的寬度為 1。

【程序員面試金典】面試題 17.21. 直方圖的水量

上面是由數(shù)組 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的直方圖,在這種情況下,可以接 6 個(gè)單位的水(藍(lán)色部分表示水)。 感謝 Marcos 貢獻(xiàn)此圖。

示例:

輸入: [0,1,0,2,1,0,1,3,2,1,2,1]
輸出: 6

解題思路

思路:最直觀的想法是,當(dāng)前直方圖所能存儲(chǔ)水量等于左邊最大值和右邊最大值之間的最小值減去當(dāng)前高度,直方圖的水量即所有直方圖的水量之和。首先分別前向遍歷、后向遍歷求出當(dāng)前直方圖左邊(包含當(dāng)前)、右邊(包含當(dāng)前)的最大值,然后再前向遍歷求出當(dāng)前直方圖水量即可。

int trap(vector<int>& height) 
{
  int n=height.size();
  //特殊判斷
  if(n==0)
    return 0;
  //存儲(chǔ)當(dāng)前元素左邊(包含當(dāng)前)的最大值
  vector<int> left(n,0);
  //存儲(chǔ)當(dāng)前元素右邊(包含當(dāng)前)的最大值
  vector<int> right(n,0);
  left[0]=height[0];
  right[n-1]=height[n-1];
  for(int i=1;i<n;i++)
     left[i]=max(left[i-1],height[i]);
  for(int i=n-2;i>=0;i--)
     right[i]=max(right[i+1],height[i]);
  int res=0;
  //所能存儲(chǔ)水量等于左邊最大值和右邊最大值之間的最小值減去當(dāng)前高度
  for(int i=0;i<n;i++)
     res+=min(left[i],right[i])-height[i];
  return res;
}

總結(jié):注意,之所以包含當(dāng)前,是為了方便計(jì)算,因?yàn)橛锌赡墚?dāng)前就是最高的。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-512557.html

到了這里,關(guān)于【程序員面試金典】面試題 17.21. 直方圖的水量的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(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)文章

  • 【程序員面試金典】面試題 17.22 . 單詞轉(zhuǎn)換

    描述:給定字典中的兩個(gè)詞,長(zhǎng)度相等。寫(xiě)一個(gè)方法,把一個(gè)詞轉(zhuǎn)換成另一個(gè)詞, 但是一次只能改變一個(gè)字符。每一步得到的新詞都必須能在字典中找到。 編寫(xiě)一個(gè)程序,返回一個(gè)可能的轉(zhuǎn)換序列。如有多個(gè)可能的轉(zhuǎn)換序列,你可以返回任何一個(gè)。 示例 1: 示例 2: 思路:最

    2024年02月11日
    瀏覽(21)
  • 【程序員面試金典】面試題 17.26. 稀疏相似度

    描述:兩個(gè)(具有不同單詞的)文檔的交集(intersection)中元素的個(gè)數(shù)除以并集(union)中元素的個(gè)數(shù),就是這兩個(gè)文檔的相似度。例如,{1, 5, 3} 和 {1, 7, 2, 3} 的相似度是 0.4,其中,交集的元素有 2 個(gè),并集的元素有 5 個(gè)。給定一系列的長(zhǎng)篇文檔,每個(gè)文檔元素各不相同,并與一個(gè)

    2024年02月12日
    瀏覽(19)
  • 【程序員面試金典】面試題 17.14. 最小K個(gè)數(shù)

    描述:設(shè)計(jì)一個(gè)算法,找出數(shù)組中最小的k個(gè)數(shù)。以任意順序返回這k個(gè)數(shù)均可。 示例: 提示: 0 = len(arr) = 100000 0 = k = min(100000, len(arr)) 思路:最直觀的想法是,排序。 擴(kuò)展:最大堆。最小的k個(gè)數(shù),那么就可以維持一個(gè)大小為k的最大堆,先填充k個(gè)數(shù)到最大堆中,然后再依次遍

    2024年02月11日
    瀏覽(18)
  • 【程序員面試金典】面試題 17.19. 消失的兩個(gè)數(shù)字

    描述:給定一個(gè)數(shù)組,包含從 1 到 N 所有的整數(shù),但其中缺了兩個(gè)數(shù)字。你能在 O(N) 時(shí)間內(nèi)只用 O(1) 的空間找到它們嗎? 以任意順序返回這兩個(gè)數(shù)字均可。 示例 1: 示例 2: 提示: nums.length = 30000 思路:最直觀的想法是,位運(yùn)算。消失的兩個(gè)數(shù)字和只出現(xiàn)一次的兩個(gè)元素,本質(zhì)

    2024年02月12日
    瀏覽(26)
  • 《程序員面試金典(第6版)面試題 16.10. 生存人數(shù)(前綴和思想)

    《程序員面試金典(第6版)面試題 16.10. 生存人數(shù)(前綴和思想)

    給定 N 個(gè)人的出生年份和死亡年份,第 i 個(gè)人的出生年份為 birth[i],死亡年份為 death[i],實(shí)現(xiàn)一個(gè)方法以計(jì)算生存人數(shù)最多的年份。 你可以假設(shè)所有人都出生于 1900 年至 2000 年(含 1900 和 2000 )之間。如果一個(gè)人在某一年的任意時(shí)期處于生存狀態(tài),那么他應(yīng)該被納入那一年的

    2024年02月02日
    瀏覽(27)
  • 《程序員面試金典(第6版)》 面試題 08.11. 硬幣(動(dòng)態(tài)規(guī)劃,組合問(wèn)題,C++)

    《程序員面試金典(第6版)》 面試題 08.11. 硬幣(動(dòng)態(tài)規(guī)劃,組合問(wèn)題,C++)

    硬幣。給定數(shù)量不限的硬幣,幣值為25分、10分、5分和1分,編寫(xiě)代碼計(jì)算n分有幾種表示法。(結(jié)果可能會(huì)很大,你需要將結(jié)果模上1000000007) 示例1: 輸入: n = 5 輸出:2 解釋: 有兩種方式可以湊成總金額: 5=5 5=1+1+1+1+1 示例2: 輸入: n = 10 輸出:4 解釋: 有四種方式可以湊成總金額: 1

    2023年04月08日
    瀏覽(19)
  • ChatGPT寫(xiě)21個(gè)程序,16個(gè)有漏洞:離取代程序員還遠(yuǎn)著呢!

    ChatGPT寫(xiě)21個(gè)程序,16個(gè)有漏洞:離取代程序員還遠(yuǎn)著呢!

    近年來(lái),大型語(yǔ)言模型推動(dòng)人工智能領(lǐng)域取得了巨大的進(jìn)步。其中,OpenAI 打造的 ChatGPT 甫一亮相,就憑借出色的性能震驚全球。ChatGPT 不僅能夠處理普通文本,還能將自然語(yǔ)言翻譯成代碼,其驚艷表現(xiàn)甚至引發(fā)了“是否會(huì)取代程序員”的討論。 但最新研究發(fā)現(xiàn),ChatGPT 生成的

    2023年04月26日
    瀏覽(18)
  • 讀程序員的README筆記17_構(gòu)建可演進(jìn)的架構(gòu)(下)

    讀程序員的README筆記17_構(gòu)建可演進(jìn)的架構(gòu)(下)

    1.3.3.1.?開(kāi)發(fā)人員可以只專注于和自己相關(guān)的字段,因?yàn)樗鼈儠?huì)繼承其他字段的默認(rèn)值 1.3.3.2.?默認(rèn)值可使大型API在感覺(jué)上很小巧 1.4.1.1.?OpenAPI通常用于RESTful服務(wù) 1.4.1.2.?non-REST服務(wù)則使用Protocol Buffers、Thrift或類(lèi)似的接口定義語(yǔ)言(interface definition language,IDL) 1.4.1.3.?接口定義工

    2024年02月04日
    瀏覽(50)
  • 程序員面試邏輯題

    程序員面試邏輯題

    答案: 這個(gè)題有點(diǎn)像數(shù)學(xué)歸納法,就是假設(shè)有 A A A 和 B B B 兩個(gè)人是黑色的帽子,這樣的話第一次開(kāi)燈, A A A 看到 B B B 是黑色的,其他人都是白色的,那么 A A A 會(huì)覺(jué)得 B B B 是那個(gè)黑色的,同理 B B B 也是這么想的。一次關(guān)燈之后 A A A 和 B B B 都沒(méi)有打耳光, A A A 反應(yīng)過(guò)來(lái)

    2024年02月09日
    瀏覽(21)
  • 程序員必備的面試技巧

    “程序員必備的面試技巧,就像是編寫(xiě)一段完美的代碼一樣重要。在面試戰(zhàn)場(chǎng)上,我們需要像忍者一樣靈活,像偵探一樣聰明,還要像無(wú)敵鐵金剛一樣堅(jiān)定。只有掌握了這些技巧,我們才能在面試的舞臺(tái)上閃耀光芒,成為那個(gè)令HR們心動(dòng)的程序猿!” 提醒:在發(fā)布作品前,請(qǐng)

    2024年01月21日
    瀏覽(27)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包