leetcode1011. 在 D 天內送達包裹的能力(二分查找)

傳送帶上的包裹必須在 D 天內從一個港口運送到另一個港口。

傳送帶上的第 i 個包裹的重量為 weights[i]。每一天,我們都會按給出重量的順序往傳送帶上裝載包裹。我們裝載的重量不會超過船的最大運載重量。

返回能在 D 天內將傳送帶上的所有包裹送達的船的最低運載能力。

示例 1:

輸入:weights = [1,2,3,4,5,6,7,8,9,10], D = 5
輸出:15
解釋:
船舶最低載重 15 就能夠在 5 天內送達所有包裹,如下所示:
第 1 天:1, 2, 3, 4, 5
第 2 天:6, 7
第 3 天:8
第 4 天:9
第 5 天:10

請注意,貨物必須按照給定的順序裝運,因此使用載重能力為 14 的船舶并將包裝分成 (2, 3, 4, 5), (1, 6, 7), (8), (9), (10) 是不允許的。

代碼

class Solution {public int getShipWithinDays(int[] weights, int d) {//計算當前載重量多少天可以運完int res=1,temp=0;for(int c:weights){if(c>d) return Integer.MAX_VALUE;//貨物太重了,必須要大的船temp+=c;if(temp>d){temp=c;res++;}}return  res;}public int shipWithinDays(int[] weights, int D) {int sum=0;for(int c:weights) sum+=c;int l=0,r=sum;while (l<=r)//二分查找載重量{int mid=(r-l)/2+l;int cur=getShipWithinDays(weights,mid);if(cur<=D)r=mid-1;else l=mid+1;}return l;}
}

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

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

相關文章

java集合概念_JAVA集合概念

Java集合是使程序能夠存儲和操縱元素不固定的一組數據。 所有Java集合類都位于java.uti包中。與Java數組不同&#xff0c;Java集合中不能存放基本數據類型&#xff0c;只能存放對象的引用。但是在JDK5.0以后的版本當中&#xff0c;JAVA增加了“自動裝箱”和“自動拆箱”的機制&…

項目計劃總結

項目計劃總結 任務 日期 聽課&#xff08;min&#xff09; 編程&#xff08;min&#xff09; 閱讀課本&#xff08;min&#xff09; 日總結&#xff08;min&#xff09; 2017/3/13 120 70 190 2017/3/14 80 80 2017/3/15 90 30 120 2017/3/16 …

HTML5新特性之Mutation Observer

Mutation Observer&#xff08;變動觀察器&#xff09;是監視DOM變動的接口。當DOM對象樹發生任何變動時&#xff0c;Mutation Observer會得到通知。 要概念上&#xff0c;它很接近事件。可以理解為&#xff0c;當DOM發生變動會觸發Mutation Observer事件。但是&#xff0c;它與…

leetcode230. 二叉搜索樹中第K小的元素(中序遍歷)

給定一個二叉搜索樹&#xff0c;編寫一個函數 kthSmallest 來查找其中第 k 個最小的元素。說明&#xff1a; 你可以假設 k 總是有效的&#xff0c;1 ≤ k ≤ 二叉搜索樹元素個數。示例 1:輸入: root [3,1,4,null,2], k 13/ \1 4\2 輸出: 1解題思路 變量 cnt:統計已經按序遍…

Python操作MongoDB - 極簡教程

2019獨角獸企業重金招聘Python工程師標準>>> Python 連接 MongoDB 安裝PyMongo模塊 pip install pymongo使用MongoClient建立連接 from pymongo import MongoClient # 以下為三種建立連接的方式 #client MongoClient() #client MongoClient(localhost, 27017) #cl…

nuxt.js的核心代碼_Nuxt.js中的通用應用程序代碼結構

nuxt.js的核心代碼by Krutie Patel通過克魯蒂帕特爾(Krutie Patel) Nuxt.js中的通用應用程序代碼結構 (Universal application code structure in Nuxt.js) Nuxt.js中的源代碼結構的簡要摘要 (A brief summary of source code structure in Nuxt.js) Are you new to the Nuxt.…

java 省市區三級聯動_AJAX省市區三級聯動下拉菜單(java版)

此小程序的功能主要是采用異步請求方式從數據庫中調取省市區信息顯示到下拉列表&#xff1a;代碼如下&#xff1a;建立數據庫中的代碼和一些配置文件信息就省略了&#xff0c;主要有JavaScript中的代碼為&#xff1a;$(document).ready(function(){$.get("getProvince.do&…

20155305喬磊2016-2017-2《Java程序設計》第四周學習總結

20155305喬磊2016-2017-2《Java程序設計》第四周學習總結 教材學習內容總結 繼承 繼承就是避免多個類間重復定義共同行為。面向對象中&#xff0c;子類繼承父類&#xff0c;就是把程序中相同的代碼部分提升為父類。extends關鍵字&#xff0c;表示前者會擴充后者的行為&#xff…

leetcode29. 兩數相除(位運算)

給定兩個整數&#xff0c;被除數 dividend 和除數 divisor。將兩數相除&#xff0c;要求不使用乘法、除法和 mod 運算符。 返回被除數 dividend 除以除數 divisor 得到的商。 整數除法的結果應當截去&#xff08;truncate&#xff09;其小數部分&#xff0c;例如&#xff1a;…

【eclipse轉idea的第一天】配置idea

為什么80%的碼農都做不了架構師&#xff1f;>>> 導入maven項目 設置maven(全局) 為了不然才轉idea的碼友們重復我犯過的錯&#xff0c;我這兒截圖步驟說明下&#xff1a; 這里是列表文本這里是列表文本idea的設置有兩種&#xff1a;全局&#xff0c;局部(我這么叫的…

node.js web框架_使用Node.js進行Web爬取的終極指南

node.js web框架So what’s web scraping anyway? It involves automating away the laborious task of collecting information from websites.那么&#xff0c;什么是網絡抓取&#xff1f; 它涉及自動化從網站收集信息的艱巨任務。 There are a lot of use cases for web s…

java局部內部類 final_Java的局部內部類以及final類型的參數和變量

Thinking In Java里面的說法(***正確的說法)&#xff1a; 如果定義一個匿名內部類&#xff0c;并且希望它使用一個在其外部定的對象&#xff0c;那么編譯器會要求其參數引用是final 的。publicclassTester {publicstaticvoidmain(String[] args) {A a newA();C c newC();c.shou…

Vmware 安裝虛擬工具 (二)

打開虛擬機&#xff0c;以root超級用戶登陸&#xff0c;菜單欄選擇虛擬機&#xff0c;install安裝虛擬機 拷貝虛擬工具到 在根目錄下建立文件夾&#xff0c;并將工具拷貝到該文件夾&#xff0c;例如vmtool 打開終端&#xff0c;進入該目錄開始安裝 如圖&#xff0c;進入目錄解壓…

git與svn的區別 ?Git 與 SVN那個更好?

git與svn的區別 &#xff1a; http://www.360doc.com/content/12/1228/20/11220452_256857021.shtml 在版本控制系統的選型上&#xff0c;是選擇Git還是SVN&#xff1f; 對于開源項目來說這不算問題。使用Git極大地提高了開發效率、擴大了開源項目的參與度、 增強了版本控制系統…

強化學習簡介

by ADL通過ADL Reinforcement Learning is an aspect of Machine learning where an agent learns to behave in an environment, by performing certain actions and observing the rewards/results which it get from those actions.強化學習是機器學習的一個方面&#xff0…

leetcode1111. 有效括號的嵌套深度(棧)

給你一個「有效括號字符串」 seq&#xff0c;請你將其分成兩個不相交的有效括號字符串&#xff0c;A 和 B&#xff0c;并使這兩個字符串的深度最小。 不相交&#xff1a;每個 seq[i] 只能分給 A 和 B 二者中的一個&#xff0c;不能既屬于 A 也屬于 B 。 A 或 B 中的元素在原字…

利用Arcgis for javascript API繪制GeoJSON并同時彈出多個Popup

1.引言 由于Arcgis for javascript API不可以繪制Geojson&#xff0c;并且提供的Popup一般只可以彈出一個&#xff0c;在很多專題圖制作中&#xff0c;會遇到不少的麻煩。因此本文結合了兩個現有的Arcgis for javascript API擴充庫&#xff0c;對其進行改造達到繪制Geojson并同…

java 線程簡介_java多線程介紹

java多線程介紹多線程的基本實現進程指運行中的程序&#xff0c;每個進程都會分配一個內存空間&#xff0c;一個進程中存在多個線程&#xff0c;啟動一個JAVA虛擬機&#xff0c;就是打開個一個進程&#xff0c;一個進程有多個線程&#xff0c;當多個線程同時進行&#xff0c;就…

webpack入門——構建簡易版vue-cli

用vue-cli1/2搭建一個vue項目時&#xff0c;可以看到有很多關于webpack配置的文件。我們不需要知道那些繁瑣的配置文件有什么作用&#xff0c;只需在控制臺輸入npm run dev&#xff0c;項目自動啟動&#xff0c;我們就可以愉快的寫業務代碼了。 雖然vue-cli幫我們做好了一切&am…

leetcode43. 字符串相乘

給定兩個以字符串形式表示的非負整數 num1 和 num2&#xff0c;返回 num1 和 num2 的乘積&#xff0c;它們的乘積也表示為字符串形式。 示例 1: 輸入: num1 “2”, num2 “3” 輸出: “6” 代碼 class Solution {public String multiply(String num1, String num2) {if(n…