华为OD机试 - 租车骑绿道 - 双指针(Java 2023 B卷 100分)

news/2024/11/25 15:29:00/

在这里插入图片描述

目录

    • 一、题目描述
    • 二、输入描述
    • 三、输出描述
    • 四、解题思路
      • 1、输入
      • 2、输出
      • 3、说明
      • 4、双指针算法
    • 五、Java算法源码
    • 六、效果展示

华为OD机试 2023B卷题库疯狂收录中,刷题点这里

一、题目描述

部门组织绿岛骑行团建活动,租用公共双人自行车骑行,每辆自行车最多坐两人、最大载重 M。

给出部门每个人的体重,请问最多需要租用多少双人自行车。

二、输入描述

第一行两个数字 m、n,自行车限重 m,代表部门总人数 n。

第二行,n 个数字,代表每个人的体重。体重都小于等于自行车限重 m。

0<m <= 200

0 < n <= 1000000

三、输出描述

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

四、解题思路

1、输入

7 6
3 4 5 3 3 7

2、输出

4

3、说明

  1. 自行车限重7
  2. 一共6人,按照体重排序,3 3 3 4 5 7
  3. 分配自行车,3 + 3 < 7,3 + 4 = 7,5 < 7,7 =7
  4. 故,一共4台。

4、双指针算法

  1. 先排序;
  2. 如果两人体重之和小于等于 m,则租一辆双人自行车;
  3. 如果两人体重之和大于 m,则租一辆单人自行车;

五、Java算法源码

/*** 双指针*/
public static void main(String[] args) {Scanner sc = new Scanner(System.in);String line1 = sc.nextLine();String line2 = sc.nextLine();String[] split = line1.split(" ");// 自行车限重 mint m = Integer.parseInt(split[0]);// 人数nint n = Integer.parseInt(split[1]);// 需要的自行车数量int count = 0;// 每个人的体重集合String[] arr = line2.split(" ");int[] nums = new int[arr.length];for (int i = 0; i < nums.length; i++) {nums[i] = Integer.parseInt(arr[i]);}// 按照体重排序Arrays.sort(nums);// 体重最轻的人int i = 0;// 体重最重的人int j = nums.length - 1;/*** 如果两人体重之和小于等于 m,则租一辆双人自行车。* 如果两人体重之和大于 m,则租一辆单人自行车。*/while (i < j) {// 如果两个重量加起来大于m,那么右指针左移if (nums[i] + nums[j] > m) {j--;count++;} else {i++;j--;count++;}}// 左右指针相等时if (i == j) {count++;}System.out.println(count);
}

六、效果展示

在这里插入图片描述


🏆下一篇:华为OD机试真题 Java 实现【简易内存池】【2023 B卷 200分 考生抽中题】

🏆本文收录于,华为OD机试(JAVA)真题(A卷+B卷)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述


http://www.ppmy.cn/news/1075272.html

相关文章

服务器端污染属性反射提升权限

污染属性反射检测服务器端原型污染 通过服务器端原型污染提升权限 Lab: Privilege escalation via server-side prototype pollution 必要知识点 开发人员很容易陷入的一个陷阱是忘记或忽略 JavaScript 循环迭代对象的所有可枚举属性这一事实&#xff0c;包括它通过原型链继…

解决git gitlab push代码gitlab显示前一个人(别人)的名字

网上搜了半天&#xff0c;来来回回也没改什么东西&#xff0c;莫名其妙就成功了&#xff0c;我怀疑是这样成功的&#xff0c;所以在这里记录一下。 查看用户名和邮箱 git config --local user.name git config --local user.email修改用户名和邮箱 git config --local user.n…

@Transactional注解的正确使用

Transactional是编程中的注解,也是声明事务的管理,要么全部执行成功,要么全部失败; *使用方法: 1.添加在接口实现类或者接口实现方法上,而不是接口类中; 2.访问权限:public的方法才能起到作用,Transactional注解应该只被应用到public方法上,这是由spring aop 的本质决定的,系统…

c语言练习题--5

以上是valgrind的安装

FreeRTOS基于Cube MX配置的解析

目录 一、Kernel settings设置 二、Memory management settiings设置 三、Hook function related definitions设置 四、Run time and task stats gathering related definitions设置 五、Co-routine related definitions设置 六、Software timer definitions 设置 七、I…

ElasticSearch(一)数据类型

ElasticSearch&#xff08;一&#xff09;数据类型 1.简述 Es数据类型分为基础数据类型和复杂类型数据&#xff0c;掌握ES数据类型才能进一步使用ES检索数据内容。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot…

51页企业数字化转型战略实践与启示PPT(附400份转型资料)

本资料来源公开网络&#xff0c;仅供个人学习&#xff0c;请勿商用&#xff0c;如有侵权请联系删除&#xff0c;更多内容浏览公众号&#xff1a;智慧方案文库 企业数字化转型之路.pptx企业数字化转型大数据湖一体化平台项目建设方案PPT.pptx企业数字化转型大数据湖一体化运营管…

SciencePub学术 | Elsevier出版社SCIEEI征稿中

SciencePub学术刊源推荐:Elsevier出版社SCIE&EI征稿中&#xff01;信息如下&#xff0c;录满为止&#xff1a; 一、期刊概况&#xff1a; 计算机科学类SCI-01 【期刊简介】6.5-7.0&#xff0c;JCR1区&#xff0c;中科院2区&#xff1b; 【检索情况】正刊&#xff0c;SC…