從零學算法2105

2105. 給植物澆水 II
Alice 和 Bob 打算給花園里的 n 株植物澆水。植物排成一行,從左到右進行標記,編號從 0 到 n - 1 。其中,第 i 株植物的位置是 x = i 。
每一株植物都需要澆特定量的水。Alice 和 Bob 每人有一個水罐,最初是滿的 。他們按下面描述的方式完成澆水:
Alice 按 從左到右 的順序給植物澆水,從植物 0 開始。Bob 按 從右到左 的順序給植物澆水,從植物 n - 1 開始。他們 同時 給植物澆水。
無論需要多少水,為每株植物澆水所需的時間都是相同的。
如果 Alice/Bob 水罐中的水足以 完全 灌溉植物,他們 必須 給植物澆水。否則,他們 首先(立即)重新裝滿罐子,然后給植物澆水。
如果 Alice 和 Bob 到達同一株植物,那么當前水罐中水 更多 的人會給這株植物澆水。如果他倆水量相同,那么 Alice 會給這株植物澆水。
給你一個下標從 0 開始的整數數組 plants ,數組由 n 個整數組成。其中,plants[i] 為第 i 株植物需要的水量。另有兩個整數 capacityA 和 capacityB 分別表示 Alice 和 Bob 水罐的容量。返回兩人澆灌所有植物過程中重新灌滿水罐的 次數 。
示例 1:
輸入:plants = [2,2,3,3], capacityA = 5, capacityB = 5
輸出:1
解釋:
- 最初,Alice 和 Bob 的水罐中各有 5 單元水。
- Alice 給植物 0 澆水,Bob 給植物 3 澆水。
- Alice 和 Bob 現在分別剩下 3 單元和 2 單元水。
- Alice 有足夠的水給植物 1 ,所以她直接澆水。Bob 的水不夠給植物 2 ,所以他先重新裝滿水,再澆水。
所以,兩人澆灌所有植物過程中重新灌滿水罐的次數 = 0 + 0 + 1 + 0 = 1 。
示例 2:
輸入:plants = [2,2,3,3], capacityA = 3, capacityB = 4
輸出:2
解釋:
- 最初,Alice 的水罐中有 3 單元水,Bob 的水罐中有 4 單元水。
- Alice 給植物 0 澆水,Bob 給植物 3 澆水。
- Alice 和 Bob 現在都只有 1 單元水,并分別需要給植物 1 和植物 2 澆水。
- 由于他們的水量均不足以澆水,所以他們重新灌滿水罐再進行澆水。
所以,兩人澆灌所有植物過程中重新灌滿水罐的次數 = 0 + 1 + 1 + 0 = 2 。
示例 3:
輸入:plants = [5], capacityA = 10, capacityB = 8
輸出:0
解釋:
- 只有一株植物
- Alice 的水罐有 10 單元水,Bob 的水罐有 8 單元水。因此 Alice 的水罐中水更多,她會給這株植物澆水。
所以,兩人澆灌所有植物過程中重新灌滿水罐的次數 = 0 。
提示:
n == plants.length
1 <= n <= 105
1 <= plants[i] <= 106
max(plants[i]) <= capacityA, capacityB <= 109

  • 雙指針:模擬題,用 a,b 記錄兩人剩余水量,雙向遍歷時遇到同一植物則按照規挑人澆水,如果需要灌水就灌水;否則就各自看是否需要先灌水再澆水
  •   public int minimumRefill(int[] plants, int capacityA, int capacityB) {int res = 0;int a = capacityA, b = capacityB;for(int left = 0, right = plants.length - 1; left <= right; left++, right--){if(left == right){int max = Math.max(a, b);res += max < plants[left] ? 1 : 0;}else{int plantA = plants[left], plantB = plants[right];if(plantA > a){res++;a = capacityA;}a -= plantA;if(plantB > b){res++;b = capacityB;}b -= plantB;}}return res;}
    

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/10827.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/10827.shtml
英文地址,請注明出處:http://en.pswp.cn/web/10827.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何在湖師大官網找到考研真題

今天學弟問我怎么找真題&#xff0c;我必須告訴他怎么找湖師大的真題&#xff0c;身為考研學子&#xff0c;這是必須要知道滴&#xff0c;尤其是自命題&#xff0c;是吧&#xff0c;話不多說&#xff0c;言歸正傳&#xff0c;我們開始吧&#xff01; 1 打開湖師大官網 什么&a…

樹莓派nmap掃描

debian系統安裝nmap&#xff1a; sudo apt install nmap安裝nmap完成后&#xff0c;輸入 ip route 來查看當前Wi-Fi路由器的ip地址。 第一行的default via后顯示的便是網關地址&#xff0c;也就是路由器地址。 獲取到路由器ip地址后&#xff0c;在終端中輸入&#xff1a; …

一站式HMI軟件開發套件eStation,讓開發更簡單高效

4月份舉辦的北京國際車展上全球首發車117輛&#xff0c;新能源車型278個&#xff0c;越來越多的車廠通過差異化和改善UI/UE體驗&#xff0c;來獲取更多用戶的青睞。為快速響應差異化競爭需求&#xff0c;智能座艙HMI市場遇到以下挑戰&#xff1a; 如何兼容不同項目開發人員編程…

C# 使用SendMessage進行進程通信,可發送字符串,結構體

發送時只能以結構體形式發送&#xff0c;類的話會提示“指定結構必須能直接復制到本機結構中&#xff0c;或是具有布局信息 ”的錯誤提示 以下兩種結構體示例都可以被發送 public struct A{public A(int a){name "heow";array new double[3] { 1, 2, 5.6 };}strin…

批量為本地視頻生成字幕文件,并可將字幕文件翻譯成其它語言

VideoSubtitleGenerator 批量為本地視頻生成字幕文件&#xff0c;并可將字幕文件翻譯成其它語言 本項目基于 macOS, node 環境運行&#xff0c;暫未兼容 windows 環境 &#x1f310;Github地址 https://github.com/buxuku/VideoSubtitleGenerator 初衷 自己有一大批外文視頻&…

力扣例題(用棧實現隊列)

目錄 鏈接. - 力扣&#xff08;LeetCode&#xff09; 描述 思路 push pop peek empty 代碼 鏈接. - 力扣&#xff08;LeetCode&#xff09; 描述 思路 push 例如我們將10個元素放入棧中&#xff0c;假設最左邊為棧頂&#xff0c;最右側為棧底 則為10,9,8,7,6,5,4,3,…

嵌入式 - GPIO編程簡介

An Introduction to GPIO Programming By Jeff Tranter Wednesday, June 12, 2019 編者按&#xff1a;本 2019 年博客系列是 ICS 最受歡迎的系列之一&#xff0c;現已更新&#xff08;2022 年 12 月&#xff09;&#xff0c;以確保內容仍然準確、相關和有用。 本博客是 Integr…

實體類和Entity Class之間有什么聯系

實體類&#xff08;Entity Class&#xff09;和Entity Class在本質上是相同的&#xff0c;它們都是面向對象編程&#xff08;OOP&#xff09;中用于表示具有業務邏輯意義的實體的類。 具體來說&#xff0c;實體類通常被設計用于代表真實世界中的對象或概念&#xff0c;這些對象…

PWRWER

編譯燒錄完代碼之后&#xff0c;按下復位鍵屏幕會進行刷新&#xff0c;數據不會丟失 如果按下按鍵&#xff0c;進行頁擦除&#xff0c;之后再按下復位鍵&#xff0c;發現屏幕不會再進行刷新&#xff0c;原因是程序已經被擦除&#xff0c;損毀&#xff0c;無法運行&#xff0c;此…

2024OD機試卷-查找接口成功率最優時間段 (java\python\c++)

題目:查找接口成功率最優時間段 題目描述 服務之間交換的接口成功率作為 服務調用 關鍵質量特性,某個時間段內的接口失敗率使用一個數組表示, 數組中每個元素都是單位時間內失敗率數值,數組中的數值為0~100的整數, 給定一個數值(minAverageLost)表示某個時間段內平均失敗…

圖片轉word如何轉換?

要將圖片轉換為Word文檔&#xff0c;你可以使用以下方法之一&#xff1a; 以上這些方法都可以幫助你將圖片中的文本轉換為可編輯的Word文檔&#xff0c;你可以根據自己的喜好和需求選擇其中一種方法來操作。 使用OCR軟件或在線工具&#xff1a;有許多OCR&#xff08;Optical Ch…

【數據庫】為何選擇B+樹作為索引?與紅黑樹、B樹的對比

摘要&#xff1a; 數據庫索引是數據庫系統中至關重要的組成部分&#xff0c;影響著數據檢索的效率和性能。本文將探討為何數據庫選擇B樹作為索引的原因&#xff0c;并分別分析紅黑樹和B樹在此場景中的劣勢。 介紹&#xff1a; 數據庫索引是數據庫系統中的重要組成部分&#xf…

實戰LangChain(六):深入LangGraph的高級功能與最佳實踐

實戰LangChain(六):深入LangGraph的高級功能與最佳實踐 實戰LangChain(一):構建您的第一個聊天機器人_langchai 機器人 實戰LangChain(二):探索RAG——為聊天機器人注入知識-CSDN博客 實戰LangChain(三):深化交互——利用Neo4j提升聊天機器人的對話能力 實戰La…

電子資源|基于SSM+vue的電子資源管理系統(源碼+數據庫+文檔)?

電子資源管理系統 目錄 基于SSMvue的電子資源管理系統 一、前言 二、系統設計 三、系統功能設計 1系統功能模塊 2管理員功能模塊 5.2.1管理員功能模塊 5.2.2用戶功能模塊 四、數據庫設計 五、核心代碼 六、論文參考 七、最新計算機畢設選題推薦 八、源碼獲取&am…

【Qt 學習筆記】Qt常用控件 | 多元素控件 | Tree Widget的說明及介紹

博客主頁&#xff1a;Duck Bro 博客主頁系列專欄&#xff1a;Qt 專欄關注博主&#xff0c;后期持續更新系列文章如果有錯誤感謝請大家批評指出&#xff0c;及時修改感謝大家點贊&#x1f44d;收藏?評論? Qt常用控件 | 多元素控件 | Tree Widget的說明及介紹 文章編號&#x…

python代碼實現TF-IDF

1、TF-IDF解釋 TF-IDF&#xff08;Term frequency–inverse document frequency&#xff09;&#xff0c;中文翻譯就是詞頻 - 逆文檔頻率&#xff0c;是一種用來計算關鍵詞的傳統方法。 TF&#xff08;Term Frequency&#xff09;&#xff1a;TF 的意思就是詞頻&#xff0c;是…

云計算的優勢與未來發展

隨著數字化轉型的蓬勃發展&#xff0c;云計算作為信息技術應用的基礎設施&#xff0c;逐漸成為企業的首選。云計算以其諸多優勢和未來發展趨勢&#xff0c;為企業帶來了更高效、靈活和創新的IT解決方案&#xff0c;助力企業實現數字化轉型和業務發展。 云計算的優勢 首先&…

C#中的隱式類型轉換和顯式類型轉換

在C#中&#xff0c;類型轉換分為隱式類型轉換&#xff08;Implicit Type Conversion&#xff09;和顯式類型轉換&#xff08;Explicit Type Conversion&#xff09;&#xff0c;也稱為隱式轉換和強制轉換。 隱式類型轉換&#xff08;Implicit Type Conversion&#xff09; 隱…

SQL Server共享功能目錄顯示灰色無法自行選擇

SQL Server共享功能目錄顯示灰色無法自行調整 一、 將之前安裝SQL Server卸載干凈 二、 清空注冊表 1. 打開注冊表&#xff0c;winR&#xff0c;輸入regedit 2. 注冊表-》編輯-》查找&#xff0c;輸入C:\Program Files\Microsoft SQL Server\ 3. 注冊表-》編輯-》查找&#x…

算法小記(二分)

題目描述: 輸入 &#x1d45b;n 個不超過 109109 的單調不減的&#xff08;就是后面的數字不小于前面的數字&#xff09;非負整數 &#x1d44e;1,&#x1d44e;2,…,&#x1d44e;&#x1d45b;a1?,a2?,…,an?&#xff0c;然后進行 &#x1d45a;m 次詢問。對于每次詢問&a…