题目
用数组代表每个人的能力,一个比赛活动要求参赛团队的最低能力值为N,每个团队可以由1人或者2人组成,且1个人只能参加1个团队,计算出最多可以派出多少只符合要求的团队。
输入描述
第一行代表总人数,范围1-500000
第二行数组代表每个人的能力
数组大小,范围1-500000
元素取值,范围1-500000
第三行数值为团队要求的最低能力值,范围1-500000
输出描述
最多可以派出的团队数量
用例
输入 5
3 1 5 7 9
8
输出 3
说明 3、5组成一队 1、7一队 9自己一队 输出3
输入 7
3 1 5 7 9 2 6
8
输出 4
说明 3、5组成一队,1、7一队,9自己一队,2、6一队,输出4
输入 3
1 1 9
8
输出 1
说明 9自己一队,输出1
解题思路
- 对人员能力数组进行升序排序,以便后续处理。
- 使用两个指针 l 和 r 分别指向数组的开头和结尾。
- 首先处理单人组队的情况,即能力大于等于最低要求的人数统计出来。
- 然后进入双人组队的逻辑:当 l 小于