【免费题库】华为OD机试 |
您所在的位置:网站首页 › 杜鲁丁最多能用几支球拍 › 【免费题库】华为OD机试 |
文章目录
题目描述
输入描述
输出描述
用例
解题思路:
Java代码:
JS代码:
Python代码:
C代码:
C++代码:
题目描述
用数组代表每个人的能力,一个比赛活动要求参赛团队的最低能力值为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 解题思路: 首先对输入的能力数组进行排序。 使用双指针法,一个指针从左往右遍历,另一个指针从右往左遍历。 如果两个指针指向的元素之和大于等于团队要求的最低能力值,说明可以组成一队,将结果加1,并将左指针向右移动一位。 如果两个指针指向的元素之和小于团队要求的最低能力值,说明左指针指向的元素太小,需要将左指针向右移动一位。 当左指针小于右指针时 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |