船的最小载重量-算法

说明:题解完全是从leetCode上拉下来的,在这里只是作为一个备份,怕之后找不着了。同时也分享给大家,这个题目用了一个我之前从未遇到的思路。

原题:船的最小载重量-leetCode1101

题目(看懂题目了吗?我看了好几遍)

传送带上的包裹必须在 days 天内从一个港口运送到另一个港口。

传送带上的第 i 个包裹的重量为 weights[i]。每一天,我们都会按给出重量(weights)的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。

返回能在 days 天内将传送带上的所有包裹送达的船的最低运载能力。

示例 1:

输入:weights = [1,2,3,4,5,6,7,8,9,10], days = 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) 是不允许的。

示例 2:

输入:weights = [3,2,2,4,1,4], days = 3

输出:6

解释: 船舶最低载重 6 就能够在 3 天内送达所有包裹,

如下所示:

第 1 天:3, 2

第 2 天:2, 4

第 3 天:1, 4

示例 3:

输入:weights = [1,2,3,1,1], days = 4

输出:3

解释:

第 1 天:1

第 2 天:2

第 3 天:3

第 4 天:1, 1

题解

 

class Solution {public int shipWithinDays(int[] weights, int days) {// 确定二分查找左右边界int left = Arrays.stream(weights).max().getAsInt(), right = Arrays.stream(weights).sum();while (left < right) {int mid = (left + right) / 2;// need 为需要运送的天数// cur 为当前这一天已经运送的包裹重量之和int need = 1, cur = 0;for (int weight : weights) {if (cur + weight > mid) {++need;cur = 0;}cur += weight;}if (need <= days) {right = mid;} else {left = mid + 1;}}return left;}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/642991.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

街机模拟游戏逆向工程(HACKROM)教程:[18]分析的思路

在之前的文章,我们已经提及,得到玩家的血量,可以用这个分析出哪些想要的东西: 1、被敌人攻击 - 得到敌人某个技能的攻击力,自身的防御力。 2、被队友攻击 - 得到队友的攻击力。 3、被道具击中 - 得到道具的攻击力。 4、使用扣血技能 - 得到使用技能扣除的血量值。 5、…

pikachu_csrf通关攻略

csrf&#xff08;get&#xff09; 打开pikachu靶场&#xff1a; 1. 根据提示给的账户密码进行登录 2. 打开代理拦截数据包将拦截数据发送到已打开的burp中&#xff1a; 修改数据进行发包&#xff1a; 从上面的url可见&#xff0c;修改用户信息的时候&#xff0c;是不带任何不…

网易云音乐JS逆向分析

文章目录 页面分析抓包分析JS逆向分析代码编写 页面分析 先来分析一下页面 当我们点击播放按钮的时候&#xff0c;音乐开始播放。实际上这个逻辑背后的原理是这个按钮后面对应的是一个url&#xff0c;这个地址是通过ajax来进行局部刷新的。 所以我们可以通过抓包工具&#…

软件开发:大厂中的灰度发布到底是什么样的一个流程

前言 灰度发布是一种软件发布的策略&#xff0c;也被称为渐进式发布或部分用户发布。在灰度发布中&#xff0c;新版本的软件不会立即对所有用户进行全面发布&#xff0c;而是先选择一小部分用户进行测试和试用。这样可以在生产环境中逐步引入新功能或修复bug&#xff0c;以降低…

K8S搭建(centos)四、安装K8S

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

linux环境开发工具---yum与vim

1.Linux软件包管理器yum 1.1什么是软件包 在学习linux过程中&#xff0c;我们常常会遇到某些指令用不了的时候&#xff0c;原因除了权限问题外&#xff0c;还有可能是你当前的linux环境并没有安装相应的软件包。而在Linux下载安装软件的办法有两个&#xff0c;一个是先下载所需…

Aspx漏洞总结

第一部分&#xff0c;.NET项目当中的dll都可以进行反编译&#xff1a; 在java中有很多jar包&#xff0c;而在.NET框架中的bin中对应有很多DLL文件&#xff0c;bin下面都是可执行文件&#xff0c;这些文件都是很多代码封装的&#xff0c;想要查看源码&#xff0c;都需要通过反编…

Microsoft Remote Desktop for Mac(远程桌面连接)激活版

Microsoft Remote Desktop是一款由微软开发的远程桌面连接工具&#xff0c;它允许用户从另一台计算机或移动设备远程连接到Windows桌面或服务器。 以下是该软件的一些主要特点和功能&#xff1a; 跨平台支持&#xff1a;Microsoft Remote Desktop支持Windows、macOS、iOS和Andr…

【Linux】Vagrant搭建Linux环境

1. Vagrant Vagrant是一个基于Ruby的工具&#xff0c;用于创建和部署虚拟化开发环境。它使用Oracle的开源VirtualBox虚拟化系统&#xff0c;使用 Chef创建自动化虚拟环境。 1.1 安装Vagrant 从Vagrant官网下载安装包&#xff0c;执行安装。 1.2 安装VirtualBox 从官网下载…

【K8S 云原生】K8S之HPA自动扩缩容、命名空间资源限制、容器抓包

目录 一、HPA概述 1、概念 2、两个重要的组件&#xff1a; 3、HPA的规则&#xff1a; 4、pod的副本数扩容有两种方式&#xff1a; 4.1、手动扩缩容&#xff0c;修改副本数&#xff1a; 4.2、自动扩缩容HPA 二、实验部署&#xff1a; 1、部署HPA 2、实现自动扩缩容 三…

智慧博物馆信息化系统建设(2)

物联网智能感知综合平台 物联网感知综合平台是综合物联网应用共性特点,贯穿感知、传输、应用服务三层的共性功能模块、协议和平台等的总称。 “感知综合平台基础标准+应用子集标准”体系已被ISO/IEC JTC1 国际标准化组织和国家物联网基础工作组认可,“物联网感知综合平台+应…

Pandas--简介(1)

Pandas 简介 Pandas 是一个开源的数据分析和数据处理库&#xff0c;它是基于 Python 编程语言的。Pandas 提供了易于使用的数据结构和数据分析工具&#xff0c;特别适用于处理结构化数据&#xff0c;如表格型数据&#xff08;类似于Excel表格&#xff09;。Pandas 是数据科学和…

GPTBots:利用FlowBot中的卡片和表单信息,提供丰富的客服体验

在当今的数字化时代&#xff0c;客户服务的形式和体验正在经历着前所未有的变革。传统的文字消息方式已经无法满足现代用户对于服务体验的多元化需求。那么&#xff0c;如何才能在这个信息爆炸的时代&#xff0c;让我们的服务方式更加个性化、多样化&#xff0c;从而提供更丰富…

博途1200PLC脉冲轴绝对定位往复运动控制FB(完整SCL源代码)

三菱PLC绝对定位指令往复运动控制请参考下面文章链接: https://rxxw-control.blog.csdn.net/article/details/135570157https://rxxw-control.blog.csdn.net/article/details/135570157SMART PLC绝对定位往复运动控制 https://rxxw-control.blog.csdn.net/article/details/1…

VBA经典应用69例:基于文本条件的一般筛选及条件OR筛选

《VBA经典应用69例》&#xff08;版权10178981&#xff09;&#xff0c;是我推出的第九套教程&#xff0c;教程是专门针对初级、中级学员在学习VBA过程中可能遇到的案例展开&#xff0c;这套教程案例众多&#xff0c;紧贴“实战”&#xff0c;并做“战术总结”&#xff0c;以便…

JAVA工程中引用本地jar的3种常用方式,你用过哪种?

文章目录 前言1. 第1种方式2. 第2种方式3. 第3种方式 前言 实际项目过程中咱们经常会碰到需要本地引用jar包到java工程中的场景&#xff0c;本文就介绍一下遇到此场景时如何在IDEA中导入本地jar包到工程中的3种方式&#xff0c;简单却很常用。 1. 第1种方式 IDEA -> File …

Linux中NFS服务器的搭建和安装

1.介绍&#xff1a; 网络文件系统即将本地系统放在网络上某一个位置的系统&#xff0c;基于UDP/IP使用nfs能够在不同计算机之间通过网络进行文件共享&#xff0c;能使使用者访问网络上其他计算机中的文件就像在访问自己的计算机一样&#xff0c;也就是说放在一个开发板上&#…

Mysql的骚操作说明

Mysql的常规操作 记录些不常用,但是很实用的操作,旨在在MySQL语言能解决的批量操作的问题,不动用其他动态或静态语言的辅助。 1、FROM_UNIXTIME 时间戳转时间格式 select scode,sid,gender,type,FROM_UNIXTIME(report_time) as report_time,FROM_UNIXTIME(add_time) as add…

[windows]win11任务管理器性能中N卡GPU看不到cuda进程Copy选项找不到cuda选项

正常情况下Copy里面有cuda选项&#xff0c;如图 对于不懂技术的人来说&#xff0c;有个误区&#xff0c;就是上图没有显示cuda选项就一定是cuda不能用吗&#xff1f;显然不是&#xff0c;这个选项只是方便在资源管理器展示cuda使用情况。如果在windows11你设置了一些东西则可能…

短视频矩阵系统软件源头开发+无人直播源头开发

首先&#xff1a;我了解您想要开发短视频矩阵系统和无人直播系统的需求。我们是一手源头自研开发&#xff0c;我们采用的是php7.40升级版开发模式 这些系统对于许多企业和个人来说都非常重要&#xff0c;因为它们可以帮助他们更好地管理他们的内容制作和营销活动。 开发这样的…