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

目录

华为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算法源码

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(" ");

    // 自行车限重 m
    int m = Integer.parseInt(split[0]);
    // 人数n
    int 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在线答疑。

相关推荐
上海曼博生物医药科技有限公司16 小时前
NAMs新方法学迎来重要进展:CN Bio、InSphero加入C-Path联盟推动器官芯片与类器官标准化应用
学习方法·类器官·药物研发·器官芯片·nams·c-path·体外模型
老鱼说AI19 小时前
统计学习方法第八章:Boosting
人工智能·深度学习·神经网络·机器学习·学习方法·集成学习·boosting
这个DBA有点耶1 天前
云上运维新挑战:当数据库不再“看得见摸得着”
数据库·sql·程序人生·云原生·运维开发·学习方法·dba
小烤箱2 天前
ROS2 学习资源与学习方法
学习·ros·学习方法·ros2
拳里剑气2 天前
Linux:权限
linux·学习方法
法雅特吉他2 天前
入门吉他选购指南:桶型、材质、工艺对吉他性能的影响
经验分享·新媒体运营·学习方法·业界资讯·流量运营·材质·内容运营
老鱼说AI2 天前
统计学习方法第七章:支持向量机精讲(超硬核长文深入预警!)
人工智能·深度学习·神经网络·算法·机器学习·支持向量机·学习方法
luweis2 天前
企智孪生 ETA(3.3 认知算法层:ETA 的思维内核 3.4 基础架构:算力与弹性)【浙江联保网络 卢伟舜】
大数据·运维·线性代数·ai·矩阵·学习方法
humors2213 天前
学习方法的系统梳理与实践应用
学习·学习方法
老鱼说AI3 天前
统计学习方法第五章:从浅入深解析决策树
人工智能·深度学习·算法·决策树·机器学习·学习方法