算法题目
部门打算组织一次绿岛骑行团建活动,选择租用公共双人自行车进行骑行。每辆双人自行车有两个限制条件,一是最多只能乘坐两人,二是有最大载重限制M
。现在已知部门每个人的体重信息,要求计算出为了满足部门所有人骑行,最少需要租用多少辆双人自行车。
输入描述如下:
第一行包含两个数字m
和n
,其中m
代表自行车的限重,n
代表部门的总人数。
第二行有n
个数字,这些数字依次代表部门每个人的体重,并且每个人的体重都小于等于自行车的限重m
。
取值范围为:
- 0 < m <= 200
- 0 < n <= 1000000
输出描述:输出一个整数,表示最少需要租用的双人自行车数量。
示例:
输入:
3 4
3 2 2 1
输出:
3
解题思路
本题可以使用双指针的方法来解决。解题的核心思路是先对所有人的体重进行排序,然后利用双指针从体重最轻和最重的人开始尝试组合,判断他们能否共享一辆自行车,以此来计算最少需要的自行车数量。
具体步骤如下:
- 首先,将所有人的体重按