【华为OD机试真题 java、python、c++、JsNode】最短木板长度(100%通过+复盘思路)

本文提供了一道编程题的解决方案,涉及Java、Python、C++和JsNode四种语言的实现,确保100%通过率。题目要求通过一段木料加长最短木板,以达到最大最短木板长度。复盘思路中强调了优先队列或集合在解决此类问题中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码请进行一定修改后使用,本代码保证100%通过率,本题有java、python、c++、JsNode四种代码。复盘思路在文章的最后

题目描述

小明有 n 块木板,第i( 1<=i<= n ) 块木板长度为 a[i]

小明买了一块长度为 m 的木料,这块木料可以切割成任意块

拼接到已有的木板上,用来加长木板。

小明想让最短的木板尽量长。

请问小明加长木板后,最短木板的长度可以为多少?

输入描述

输入的第一行包含两个正整数,n(1<=n<=10^3),m(1<=m<=10^6),n表示木板数,m表示木板长度。输入的第二行包含n个正整数,a1.a2....an(1<=a[i]<=10^6).

输出描述

输出的唯一一行包含一个正整数,表示加长木板后,最短木板的长度最大可以为多少?

示例1

输入

5 3
4 5 3 5 5

输出

5

说明

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

int 我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值