华为机试真题 Java 实现租车骑绿岛2022.11 Q4新题

Posted MISAYAONE

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为机试真题 Java 实现租车骑绿岛2022.11 Q4新题相关的知识,希望对你有一定的参考价值。

目录

题目

思路

考点

Code


题目

【租车骑绿岛】100分
部门组织绿岛骑行团建活动。租用公共双人自行车,每辆自行车最多坐两人,做最大载重M。
给出部门每个人的体重,请问最多需要租用多少双人自行车。
输入描述:
第一行两个数字m、n,分别代表自行车限重,部门总人数。

第二行,n个数字,代表每个人的体重,体重都小于等于自行车限重m。
0<m<=200
0<n<=1000000
输出描述:
最小需要的双人自行车数量。

示例1 输入输出示例仅供调试,后台判题数据一般不包含示例
输入

3 4
3 2 2 1

输出

3

思路

1:背包问题,贪心算法应该就可以解决了

第一步 先给人的体重排序

第二步 逐个按照贪心的思想去分配自行车

考点

1:贪心算法

Code

import java.util.Scanner;
import java.util.*;

public class Main  
    public static int max_machine=0;

    public static void main(String[] args)  
        //处理输入
        Scanner in=new Scanner(System.in); 
        int m = in.nextInt();
        int n = in.nextInt();

        ArrayList<Integer> weights = new ArrayList<Integer>();
        for (int i=0;i<n;i++) 
            int a = in.nextInt();
            weights.add(a);
            //System.out.println(s);
        
        Collections.sort(weights);
        
        int result = 0;
        int temp_weight = 0;
        for (int i=0;i<n;i++) 
            if (temp_weight<m && temp_weight + weights.get(i)>=m) 
                result += 1;
                temp_weight = weights.get(i);
             else 
                temp_weight += weights.get(i);
            
        
        System.out.println(result);
    



以上是关于华为机试真题 Java 实现租车骑绿岛2022.11 Q4新题的主要内容,如果未能解决你的问题,请参考以下文章

华为OD机试真题 JavaScript 实现租车骑绿岛2023 Q1 | 100分

华为OD机试真题 C 实现租车骑绿岛2022.11 Q4新题

华为机试真题 C++ 实现租车骑绿岛2022.11 Q4新题

华为机试真题 python 实现租车骑绿岛2022.11 Q4新题

华为OD机试Golang解题 - 租车骑绿岛

独家华为OD机试提供C语言题解 - 租车骑绿岛