华为OD机试 -租车骑绿岛(Java) | 机试题+算法思路+考点+代码解析 【2023】

news/2024/5/19 11:04:38 标签: java, 算法, 华为, od, 数据结构

租车骑绿岛

题目

部门组织绿岛骑行团建活动。租用公共双人自行车骑行,每辆自行车最多坐两人、做大载重M。
给出部门每个人的体重,请问最多需要租用多少双人自行车。

输入

第一行两个数字m、n,自行车限重m,代表部门总人数n。
第二行,n个数字,代表每个人的体重。体重都小于等于自行车限重m。
0 < m <= 200
0 < n <= 1000000

输出

最小需要的双人自行车数量。

示例一

输入

ode class="prism language-plaintext">3 4
3 2 2 1
ode>

输出

ode class="prism language-plaintext">3

ode>

解题思路

算法思想:

  • 我们需要先把所有人体重从小到大排序
  • 然后一辆车最多坐两人,所以最大的和最小的先匹配
  • 比如最大的(右指针end)和最小的(左指针start)坐都超重了,说明最大的这个人只能自己一辆车,没有其他人可以和他一起坐,所以需要的车数+1
  • 然后最小的人继续不动(左指针不动),右指针左移一个(即倒数第2重的人),如果两人都可以做,则他们俩坐,所以需要车+1。

http://www.niftyadmin.cn/n/147750.html

相关文章

华为OD机试 -斗地主(Java) | 机试题+算法思路+考点+代码解析 【2023】

斗地主 题目 斗地主起源于湖北十堰房县, 据传是一位叫吴修全的年轻人根据当地流行的扑克玩法“跑得快”改编的, 如今已风靡整个中国,并流行于互联网上 牌型: 单顺,又称顺子,最少5张牌,最多12张牌(3...A),不能有2, 也不能有大小王,不计花色 例如:3-4-5-7-8,7-8-9-1…

华为OD机试 -考古学家(Java) | 机试题+算法思路+考点+代码解析 【2023】

考古学家 题目 有一个考古学家发现一个石碑 但是很可惜 发现时其已经断成多段 原地发现N个断口整齐的石碑碎片 为了破解石碑内容 考古学家希望有程序能帮忙计算复原后的石碑文字组合数 你能帮忙吗 备注: 如果存在石碑碎片内容完全相同,则由于碎片间的顺序不影响复原后的碑…

华为OD机试 -字符串加密(Java) | 机试题+算法思路+考点+代码解析 【2023】

字符串加密 题目 给你一串未加密的字符串str, 通过对字符串的每一个字母进行改变来实现加密, 加密方式是在每一个字母str[i]偏移特定数组元素a[i]的量, 数组a前三位已经赋值:a[0]=1,a[1]=2,a[2]=4。 当i>=3时,数组元素a[i]=a[i-1]+a[i-2]+a[i-3], 例如:原文 abcde …

华为OD机试 -用连续自然数之和来表达整数(Java) | 机试题+算法思路+考点+代码解析 【2023】

用连续自然数之和来表达整数 题目 一个整数可以由连续的自然数之和来表示。给定一个整数,计算该整数有几种连续自然数之和的表达式,且打印出每种表达式。 输入描述: 一个目标整数T (1 <=T<= 1000) 输出描述: 该整数的所有表达式和表达式的个数。如果有多种表达式…

华为OD机试 -玩牌高手(Java) | 机试题+算法思路+考点+代码解析 【2023】

玩牌高手 给定一个长度为n的整型数组,表示一个选手在n轮内可选择的牌面分数。选手基于规则选牌, 请计算所有轮结束后其可以获得的最高总分数。 选择规则如下: 1、在每轮里选手可以选择获取该轮牌面,则其总分数加上该轮牌面分数,为其新的总分数。 2、选手也可不选择本轮…

华为OD机试 -获取最大软件版本号(Java) | 机试题+算法思路+考点+代码解析 【2023】

获取最大软件版本号 题目 Maven版本号定义,<主版本>.<次版本>.<增量版本>-<里程碑版本> 举例3.1.4-beta 其中,主版本和次版本都是必须的,主版本,次版本,增量版本由多位数字组成,可能包含前导零,里程碑版本由字符串组成。 <主版本>.<…

LeetCode1576. 替换所有的问号(python)

题目 给你一个仅包含小写英文字母和 ‘?’ 字符的字符串 s&#xff0c;请你将所有的 ‘?’ 转换为若干小写字母&#xff0c;使最终的字符串不包含任何 连续重复 的字符。 注意&#xff1a;你 不能 修改非 ‘?’ 字符。 题目测试用例保证 除 ‘?’ 字符 之外&#xff0c;不存…

C语言之基础代码的实现,多是简单案例适合新手(一)

C语言的值与值的比较称为关系运算 运算符含义等于!不等于>大于>大于等于<小于<小于等于 注意;当满足情况返回的值是1&#xff0c;不满足情况返回的值0 printf("%d\n",5>2);printf("%d\n",52);printf("%d\n",5>5); 优先级…