华为OD机试 -租车骑绿岛(Java) | 机试题+算法思路+考点+代码解析 【2023】
2023-09-11 14:20:21 时间
租车骑绿岛
题目
部门组织绿岛骑行团建活动。租用公共双人自行车骑行,每辆自行车最多坐两人、做大载重M。
给出部门每个人的体重,请问最多需要租用多少双人自行车。
输入
第一行两个数字m、n,自行车限重m,代表部门总人数n。
第二行,n个数字,代表每个人的体重。体重都小于等于自行车限重m。
0 < m <= 200
0 < n <= 1000000
输出
最小需要的双人自行车数量。
示例一
输入
3 4
3 2 2 1
输出
3
解题思路
算法思想:
- 我们需要先把所有人体重从小到大排序
- 然后一辆车最多坐两人,所以最大的和最小的先匹配
- 比如最大的(右指针end)和最小的(左指针start)坐都超重了,说明最大的这个人只能自己一辆车,没有其他人可以和他一起坐,所以需要的车数+1
- 然后最小的人继续不动(左指针不动),右指针左移一个(即倒数第2重的人),如果两人都可以做,则他们俩坐,所以需要车+1。
相关文章
- java实现遍历树形菜单方法——HibernateUtil实现
- JAVA学习(四):Java流程控制语句(顺序结构、if条件语句、switch条件语句、循环语句与跳转语句)
- Java实现 LeetCode 678 有效的括号字符串(暴力+思路转换)
- Java实现 LeetCode 672 灯泡开关 Ⅱ(数学思路问题)
- Java实现 LeetCode 123 买卖股票的最佳时机 III(三)
- java实现第五届蓝桥杯信号匹配
- java实现第七届蓝桥杯圆圈舞
- Java实现第八届蓝桥杯正则问题
- 图解 & 深入浅出Java初始化与清理:构造器必知必会
- 零基础学java-1,课程目录
- 【JAVA】MacBook安装Java环境及eclipse
- android:keytool签名查看md5指纹(java 15)
- 深入理解JAVA虚拟机--Idea远程执行本地Java代码
- 【JAVA】HashMap和HashSet的区别
- 【JAVA】Java 异常中e的getMessage()和toString()方法的异同
- 【Java】java使用反射访问对象方法和成员变量
- 华为OD机试 - 转骰子(Java & JS & Python)
- java中的transient 详细总结Java中transient关键字 对象写出流ObjectOutputStream 对象写入流ObjectInputStream
- The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar
- 【刷题记录⑥】Java从0到1入门|综合练习(二)
- 【JAVA面试必会】JMM高并发详解(java内存模型、JMM三大特征、volatile关键字 )
- Java 线程池最佳实践
- 基于Java+SpringBoot+Vue前后端分离驾校管理系统设计与实现(有视频讲解)
- 【异常】IDEA报错There is insufficient memory for the Java Runtime Environment to continue.
- 【java】Java 封装