【免费题库】华为OD机试

您所在的位置:网站首页 杜鲁丁最多能用几支球拍 【免费题库】华为OD机试

【免费题库】华为OD机试

2024-07-10 04:39| 来源: 网络整理| 查看: 265

文章目录 题目描述 输入描述 输出描述 用例 解题思路: 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