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