题目链接:https://leetcode-cn.com/contest/weekly-contest-128/problems/capacity-to-ship-packages-within-d-days/

题目意思:给一个数组W和一个数D,要求把这个数组分成连续的D块,使每块的和小于等于res,求最小的res值.

样例:
输入:weights = [3,2,2,4,1,4], D = 3
输出:6
解释:
船舶最低载重 6 就能够在 3 天内送达所有包裹,如下所示:
第 1 天:3, 2
第 2 天:2, 4
第 3 天:1, 4

思路:
用二分的思想,res最大值是sum(weight),res最小值是max(weight),然后求满足条件的最小的res,也就是寻找最小的小于等于目标值的二分查找.

这里的目标值D,与最大的承载量的目标需要转换一下.首先承载量越大,需要的天数越少.

  1. 天数如果大于D,说明承载量少了,小于目标值,到左半区寻找;
  2. 天数如果等于D,但是需要找等于D但是要承载量少的值,到左半区找;
  3. 天数如果大于D,说明承载量大了,大于目标值,到右半区找.
class Solution:def shipWithinDays(self, weights: List[int], D: int) -> int:#c开头的都是承载量cmax = sum(weights)cmin = max(weights)while(cmin <= cmax):day = 1cmid = (cmin + cmax) // 2wtemp = 0for w in weights:if w + wtemp <= cmid:wtemp += welse:wtemp = wday += 1if day > D:cmin = cmid + 1elif day <= D:cmax = cmid - 1return cmin

小结:
主要用到了二分法的变形.关于二分法的变形可以参考https://www.cnblogs.com/luoxn28/p/5767571.html

leetcode 1014相关推荐

  1. 动态规划——最嘉观光组合(Leetcode 1014)

    题目选自Leetcode 1014. 最佳观光组合 首先看一眼数据后排除 O(n^2) 的做法 则考虑 O(n) 的做法 在枚举的同时我们记录好后面每个景点的 A[j] - j 的最大值 首先考虑用优 ...

  2. leetcode 1014. Capacity To Ship Packages Within D Days

    leetcode 1014. Capacity To Ship Packages Within D Days 题意:给你一个数组,表示一堆货的重量.再给你一个数d,表示要求运货的天数.求一个最小的载重 ...

  3. LeetCode 1014. 最佳观光组合

    1. 题目 给定正整数数组 A,A[i] 表示第 i 个观光景点的评分,并且两个景点 i 和 j 之间的距离为 j - i. 一对景点(i < j)组成的观光组合的得分为(A[i] + A[j] ...

  4. LeetCode 723. 粉碎糖果(模拟)

    文章目录 1. 题目 2. 解题 1. 题目 这个问题是实现一个简单的消除算法. 给定一个二维整数数组 board 代表糖果所在的方格,不同的正整数 board[i][j] 代表不同种类的糖果,如果 ...

  5. [LeetCode]135.Candy

    [题目] There are N children standing in a line. Each child is assigned a rating value. You are giving ...

  6. 【LeetCode】(55)Jump Game(Medium)

    题目 Jump Game Total Accepted: 52275 Total Submissions: 194395My Submissions Question  Solution  Given ...

  7. LeetCode.接雨水

    题外话:LeetCode上一个测试用例总是通不过(我在文章末贴出通不过的测试用例),给的原因是超出运行时间,我拿那个测试用例试了下2.037ms运行完.我自己强行给加了这句: if(second == ...

  8. 【LeetCode】动态规划入门(专项打卡21天合集)

    [LeetCode]动态规划入门(专项打卡21天合集) 下图为证 文章目录 [LeetCode]动态规划入门(专项打卡21天合集) Day1 斐波拉契数 第 N 个泰波那契数 Day2 爬楼梯 使用最 ...

  9. Leetcode每日一题总目录(动态更新。。。)

    0. 概要 leecode每日一题(也可能多题)题解跟踪记录及总目录. 常用算法解题思路和技巧及数据结构: 预处理:数组排序(954),哈希表... 双指针法 682,125,905 单向链表 2 双 ...

最新文章

  1. Numpy入门教程:02. 索引、切片与迭代
  2. XGBoost缺失值引发的问题及其深度分析 | CSDN博文精选
  3. 详解RMQ LCA
  4. 现在当兵有什么待遇复原以后_从今年征兵情况来看,以后当兵可能会越来越难,有6点原因...
  5. el-select 多选取值_AR? ATOS?? DRA???这些都是英语阅读分级?聊一聊我知道的兰斯值(lexile measure))...
  6. 重点解决三大环节数字化,高效适配家装数智转型
  7. 一个简单的Ajax例子
  8. 微服务架构的终极模式?
  9. spark 不同模式用途_Spark 的四种模式
  10. Path Sum I, II
  11. 4-1:C/C++内存管理
  12. 微软“.Net社区虚拟大会”dotnetConf2015:关键词:.NET 创新、开源、跨平台
  13. Emacs基本操作说明
  14. IMX8基于FFT的GPU和CPU的性能测试
  15. 车辆跟踪 matlab,车辆跟踪matlab
  16. EXCEL-日常技巧整理-2-单元格拆分后原数据填充
  17. 51单片机——8X8点阵显示
  18. 信创云“华山论剑” 五强鼎力谁与争锋?
  19. 时间序列预测 | Python实现Transformer时间序列数据预测
  20. 字符串转Ascii码与Ascii码转字符串

热门文章

  1. 基于STM32水温炉温温度控制系统电路设计-分享
  2. Android Socks5代理服务器程序开发
  3. 推免面试经历 | 南理+湖大+浙大+华工+南航+吉大+中南+重大
  4. asin c语言中 返回值范围_C语言asin()函数:求正弦值为 x 的弧度数
  5. 云计算和python学哪个_黑龙江初中毕业学计算机技术_【北大青鸟-航天桥校区】...
  6. 计算机网络技术 校企合作,计算机网络技术校企合作模式探讨
  7. android 循环播放mp3,android – 使用AudioTrack播放循环音频
  8. Freemarker网页静态化
  9. led灯实现跑马灯效果,达到设定时间(2秒)两LED灯全部亮起,持续时间1秒,而后重新恢复跑马灯效果;
  10. iOS主题更换、音乐播放器、栏目管理、上传视频封面等源码