LeetCode-2079. 給植物澆水【數組 模擬】

LeetCode-2079. 給植物澆水【數組 模擬】

  • 題目描述:
  • 解題思路一:簡單的模擬題,初始化為0,考慮先不澆灌每一個植物
  • 解題思路二:初始化為n,考慮每一個植物需要澆灌
  • 解題思路三:0

題目描述:

你打算用一個水罐給花園里的 n 株植物澆水。植物排成一行,從左到右進行標記,編號從 0 到 n - 1 。其中,第 i 株植物的位置是 x = i 。x = -1 處有一條河,你可以在那里重新灌滿你的水罐。

每一株植物都需要澆特定量的水。你將會按下面描述的方式完成澆水:

按從左到右的順序給植物澆水。
在給當前植物澆完水之后,如果你沒有足夠的水 完全 澆灌下一株植物,那么你就需要返回河邊重新裝滿水罐。
你 不能 提前重新灌滿水罐。
最初,你在河邊(也就是,x = -1),在 x 軸上每移動 一個單位 都需要 一步 。

給你一個下標從 0 開始的整數數組 plants ,數組由 n 個整數組成。其中,plants[i] 為第 i 株植物需要的水量。另有一個整數 capacity 表示水罐的容量,返回澆灌所有植物需要的 步數 。

示例 1:

輸入:plants = [2,2,3,3], capacity = 5
輸出:14
解釋:從河邊開始,此時水罐是裝滿的:

  • 走到植物 0 (1 步) ,澆水。水罐中還有 3 單位的水。
  • 走到植物 1 (1 步) ,澆水。水罐中還有 1 單位的水。
  • 由于不能完全澆灌植物 2 ,回到河邊取水 (2 步)。
  • 走到植物 2 (3 步) ,澆水。水罐中還有 2 單位的水。
  • 由于不能完全澆灌植物 3 ,回到河邊取水 (3 步)。
  • 走到植物 3 (4 步) ,澆水。
    需要的步數是 = 1 + 1 + 2 + 3 + 3 + 4 = 14 。

示例 2:

輸入:plants = [1,1,1,4,2,3], capacity = 4
輸出:30
解釋:從河邊開始,此時水罐是裝滿的:

  • 走到植物 0,1,2 (3 步) ,澆水。回到河邊取水 (3 步)。
  • 走到植物 3 (4 步) ,澆水。回到河邊取水 (4 步)。
  • 走到植物 4 (5 步) ,澆水。回到河邊取水 (5 步)。
  • 走到植物 5 (6 步) ,澆水。
    需要的步數是 = 3 + 3 + 4 + 4 + 5 + 5 + 6 = 30 。
    示例 3:

輸入:plants = [7,7,7,7,7,7,7], capacity = 8
輸出:49
解釋:每次澆水都需要重新灌滿水罐。
需要的步數是 = 1 + 1 + 2 + 2 + 3 + 3 + 4 + 4 + 5 + 5 + 6 + 6 + 7 = 49 。

提示:

n == plants.length
1 <= n <= 1000
1 <= plants[i] <= 106
max(plants[i]) <= capacity <= 109

解題思路一:簡單的模擬題,初始化為0,考慮先不澆灌每一個植物

class Solution:def wateringPlants(self, plants: List[int], capacity: int) -> int:cur = capacityans = 0for i in range(len(plants)):if cur >= plants[i]:cur -= plants[i]ans += 1else:cur = capacity - plants[i]ans += 2 * i + 1# print(i, ans)return ans

時間復雜度:O(n)
空間復雜度:O(1)

解題思路二:初始化為n,考慮每一個植物需要澆灌

在這里插入圖片描述

class Solution:def wateringPlants(self, plants: List[int], capacity: int) -> int:ans = len(plants)water = capacityfor i, need in enumerate(plants):if water < need:ans += i * 2water = capacitywater -= needreturn ans

時間復雜度:O(n)
空間復雜度:O(1)

解題思路三:0


時間復雜度:O(n)
空間復雜度:O(n)


創作不易,觀眾老爺們請留步… 動起可愛的小手,點個贊再走唄 (???←?)
歡迎大家關注筆者,你的關注是我持續更博的最大動力


原創文章,轉載告知,盜版必究



在這里插入圖片描述


在這里插入圖片描述
? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ? ⊕ ?

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

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

相關文章

在ubuntu安裝Docker容器

1、進入root用戶模式 sudo -i 回車后&#xff0c;輸入root的密碼即可進入root模式2、在ubuntu上安裝docker &#xff08;1&#xff09;直接使用 apt 安裝&#xff0c;一般這樣也自動啟動好了 apt install docker.io3、驗證安裝成功&#xff0c;以及啟動與校驗 &#xff08;…

C++11:常用語法匯總

目錄 &#x1f341;統一的列表初始化 { }initializer_list &#x1f341;decltype 推導表達式類型&#x1f341;可變參數模板解析可變參數包方法一方法二 &#x1f341;lambda 表達式捕捉列表的使用運用場景舉例lambda表達式 與 函數對象 &#x1f341;統一的列表初始化 { } 在…

STM32F407-驅動SHT41采集溫濕度

STM32F407-驅動SHT41采集溫濕度 SHT41 SHT41通過I2C方式進行驅動 從機地址&#xff1a; 0x44 獲取數據方式 1&#xff09;先發送I2C寫&#xff0c;寫入特定指令 2&#xff09;延時一段時間&#xff0c;等待SHT41處理 3&#xff09;再進行I2C讀&#xff0c;讀數據即可 一些…

Ansible(二)

一、Playbook基礎 1.1 Playbook定義 Playbook其實是Ansible服務的一個配置文件&#xff0c;Ansible使用Playbook的YAML語言配置編寫成操作需求&#xff0c;實現對遠端主機或策略部署&#xff0c;實現對遠端主機的控制與管理。 1.2 Playbook組成 Tasks&#xff1a;任務&…

【Qt 學習筆記】Qt常用控件 | 布局管理器 | 垂直布局Vertical Layout

博客主頁&#xff1a;Duck Bro 博客主頁系列專欄&#xff1a;Qt 專欄關注博主&#xff0c;后期持續更新系列文章如果有錯誤感謝請大家批評指出&#xff0c;及時修改感謝大家點贊&#x1f44d;收藏?評論? Qt常用控件 | 布局管理器 | 垂直布局Vertical Layout 文章編號&#x…

skynet - spinlock 簡單的自旋鎖

spinlock.h 代碼位于&#xff1a; https://github.com/cloudwu/skynet/blob/master/skynet-src/spinlock.h 該文件內&#xff0c;根據不同環境提供了 3 種 api 實現&#xff1a; pthread_mutex_t 系列函數gcc 內置原子操作函數std atomic 系列函數 看了下&#xff0c;效率最…

滲透測試-信息收集

網絡安全信息收集是網絡安全領域中至關重要的一環&#xff0c;它涉及到對目標系統、網絡或應用進行全面而細致的信息搜集和分析。這一過程不僅有助于理解目標網絡的結構、配置和潛在的安全風險&#xff0c;還能為后續的滲透測試、風險評估和安全加固提供有力的支持。 在網絡安…

安卓開發--新建工程,新建虛擬手機,按鍵事件響應(含:Android中使用switch-case遇到case R.id.xxx報錯)

安卓開發--新建工程&#xff0c;新建虛擬手機&#xff0c;按鍵事件響應 1.前言2.運行一個工程2.1布局一個Button2.2 button一般點擊事件2.2 button屬性點擊事件2.2 button推薦點擊事件&#xff08;含&#xff1a;Android中使用switch-case遇到case R.id.xxx報錯&#xff09; 本…

MATLAB 多項式

MATLAB 多項式 MATLAB將多項式表示為行向量&#xff0c;其中包含按冪次降序排列的系數。例如&#xff0c;方程P(x) X 4 7 3 - 5 9可以表示為 p [1 7 0 -5 9]; 求值多項式 polyval函數用于求一個特定值的多項式。例如&#xff0c;在 x 4 時&#xff0c;計算我們之前的多項式…

HTTP URL 詳解

概述 URL 提供了一種定位因特網上任意資源的手段&#xff0c;大多數 URL 語法都由以下九個結構的通用格式組成&#xff1a; <scheme>://<user>:<password><host>:<port>/<path>;<params>?<query>#<frag> 方案&#…

命令重裝Linux系統,無需登錄控制面板

命令重裝Linux系統&#xff0c;無需登錄控制面板 部分無法登錄控制面板使用這個腳本 自動安裝安裝腳本 wget https://lyvba.com/auto.sh bash auto.sh -d 12 -v 64 -a -p $passwd \--mirror https://mirrors.ustc.edu.cn/debian/安裝命令參考 # 自動安裝 Debian 10 buster …

基于YOLOV8復雜場景下船舶目標檢測系統

1. 背景 海洋作為地球上70%的表面積&#xff0c;承載著人類生活、經濟發展和生態系統的重要功能。船舶作為海洋活動的主要載體之一&#xff0c;在海上運輸、資源開發、環境監測等方面發揮著重要作用。復雜海洋環境下的船舶目標檢測成為了海事管理、海洋資源開發和環境保護等領…

人工智能軌道交通行業周刊-第79期(2024.4.22-5.12)

本期關鍵詞&#xff1a;無人機巡檢、車機聯控、減速頂、Agent、GraphRAG、RAGFlow 1 整理涉及公眾號名單 1.1 行業類 RT軌道交通人民鐵道世界軌道交通資訊網鐵路信號技術交流北京鐵路軌道交通網鐵路視點ITS World軌道交通聯盟VSTR鐵路與城市軌道交通RailMetro軌道世界鐵路那…

2024OD機試卷-API集群負載統計 (java\python\c++)

題目:API集群負載統計 題目描述 某個產品的RESTful API集合部署在 服務器 集群的多個節點上,近期對客戶端訪問日志進行了采集,需要統計各個API的訪問頻次,根據熱點信息在服務器節點之間做負載 均衡,現在需要實現熱點信息統計查詢功能。 RESTful API是由多個層級構成,層…

《動手學深度學習》V2(11-18)

文章目錄 十一、二 模型選擇與過擬合和欠擬合1、模型的選擇2、過擬合和欠擬合3、估計模型容量4、線性分類器的VC維5、過擬合欠擬合的代碼實現 :fire:①生成數據集②定義評估損失③定義訓練函數④三階多項式函數擬合⑤線性函數擬合(欠擬合)⑤高階多項式函數擬合(過擬合) 十三、權…

【C語言】精品練習題

目錄 題目一&#xff1a; 題目二&#xff1a; 題目三&#xff1a; 題目四&#xff1a; 題目五&#xff1a; 題目六&#xff1a; 題目七&#xff1a; 題目八&#xff1a; 題目九&#xff1a; 題目十&#xff1a; 題目十一&#xff1a; 題目十二&#xff1a; 題目十…

「 網絡安全常用術語解讀 」漏洞利用預測評分系統EPSS詳解

1. 概覽 EPSS&#xff08;Exploit Prediction Scoring System&#xff0c;漏洞利用預測評分系統&#xff09; 提供了一種全新的高效、數據驅動的漏洞管理功能。EPSS是一項數據驅動的工作&#xff0c;使用來自 CVE 的當前威脅信息和現實世界的漏洞數據。 EPSS 模型產生 0 到 1&…

vue 中的 Vuex

Vuex Vuex是什么&#xff1f; 概念&#xff1a;專門在vue中實現集中式狀態&#xff08;數據&#xff09;管理的一個Vue插件&#xff0c;對Vue應用中多個組件的共享狀態進行集中式的管理(讀/寫&#xff09;&#xff0c;也是一種組件間通信的方式&#xff0c;且適用于任意組件間…

2024最新小紅書電商落地實操課,從入門到精通,打造爆款方法(16節課)

你是不是經常在小紅書上看到各種各樣的推廣和引流方法&#xff0c;卻感覺實際操作起來很困難&#xff1f; 那么&#xff0c;這門2024最新小紅書電商落地實操課就是為你量身定制的&#xff01;從入門到精通&#xff0c;不僅能讓你了解電商平臺的基本規則和玩法&#xff0c;還能…

ansible------inventory 主機清單

目錄 inventory 中的變量 2&#xff09;組變量[webservers:vars] #表示為 webservers 組內所有主機定義變量&#xff0c;所有組內成 員都有效 ansible_userrootansible_passwordabc1234 3&#xff09; [all:vars…