华为OD机试 -租车骑绿岛(C++ Java JavaScript Python )

博客介绍了华为OD机考中的一道贪心算法问题——租车绿岛,即如何根据部门员工体重分配双人自行车。文章提供了问题描述、输入输出格式、用例,并详细解释了解题思路,包括对体重排序、双指针配对的算法过程。此外,还给出了C++、JavaScript、Java和Python四种语言的代码实现。
摘要由CSDN通过智能技术生成

题目描述

部门组织绿岛骑行团建活动。租用公共双人自行车,每辆自行车最多坐两人,最大载重M。
给出部门每个人的体重,请问最多需要租用多少双人自行车。

输入描述

第一行两个数字m、n,分别代表自行车限重,部门总人数。

第二行,n个数字,代表每个人的体重,体重都小于等于自行车限重m。

  • 0<m<=200
  • 0<n<=1000000

输出描述

最小需要的双人自行车数量。

用例

输入

3 4 
3 2 2 1 

输出

3          

代码思路

这道题目是一道贪心算法的题目,需要将体重从小到大排序,然后使用双指针的方式进行配对。具体的做法是,将体重最轻的人和体重最重的人配对,如果他们的体重之和小于等于自行车的限重,则这两个人可以共乘一辆自行车,否则只能让体重最重的人单独骑一辆自行车。然后再将体重次轻的人和体重次重的人配对,以此类推,直到所有人都被配对。每次配对需要租用一辆自行车,最后未配对的人需要额外租用一辆自行车。最终需要租用的自行车数量就是所需的最小自行车数量。
这个问题的目标是计算在给定自行车限重的情况下,需要多少辆双人自行车来承载一组人。解题思路如下:

  1. 首先,读取自行车的最大承重(maxWeight)和部门总人数(numPeople)。
  2. 然后&#
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

算法大师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值