用数组代表每个人的能力,一个比赛活动要求参赛团队的最低能力值为 N ,每个团队可以由 1 人或者 2 人组成,且 1 个人只能参加 1 个团队,计算出最多可以派出多少只符合要求的团队。
第一行代表总人数,范围 1−500000
第二行数组代表每个人的能力
给定一个数组,代表每个人的能力值。比赛要求团队的最低能力值为 N,每个团队可以由 1 人或 2 人组成,每个人只能参加一个团队。要求计算最多可以派出的符合要求的团队数量。
该问题的核心思路是通过贪心策略,优先将能力值较高的人单独组成团队,然后再尽可能将剩余的人配对成两人团队。首先对所有人的能力值进行排序,然后通过双指针的方式,从数组两端开始尝试配对,如果两个人的能力值之和大于等于最低要求,则组成一个团队;如果不能配对,则将能力值较高的人单独作为一个团队。通过这种策略,可以最大化符合要求的团队数量。
具体策略如下: