题目描述
部门组织绿岛骑行团建活动。租用公共双人自行车,每辆自行车最多坐两人,最大载重M。
给出部门每个人的体重,请问最多需要租用多少双人自行车。
输入描述
第一行两个数字m、n,分别代表自行车限重,部门总人数。
第二行,n个数字,代表每个人的体重,体重都小于等于自行车限重m。
0<m<=200
0<n<=1000000
输出描述
最小需要的双人自行车数量。
用例1
输入
3 4
3 2 2 1
输出
3
解析
这个问题可以通过贪心算法来解决。因为每辆自行车可以坐两个人,我们应该尽量让体重较大的两个人坐同一辆自行车,以减少自行车的数量。
解题思路如下:
首先,将所有人的体重按降序排序。
然后,从体重最大的开始,每两个人坐一辆自行车,直到人数不足两人为止。
最后,如果还剩下一个人,那么需要再租一辆自行车。
下面是分别用Java、JavaScript、Python、C和C++实现的代码:
Java:
java
import java.util.Arrays<