华为OD机试真题 Java 实现【找出通过车辆最多颜色】【2023Q1 100分】,附详细解题思路
发布人:shili8
发布时间:2024-12-22 10:27
阅读次数:0
**华为OD机试真题 Java 实现**
**题目描述**
假设有一个集合 `car`,其中每个元素都是一个对象,代表一辆车。每辆车都有一个颜色属性(如红、蓝、黄等)。现在,我们需要找出通过车辆最多的颜色。
**输入输出格式**
* 输入:一个集合 `car`
* 输出:通过车辆最多的颜色**附详细解题思路**
1. **数据准备**
* 首先,我们需要准备好数据。假设我们有一个集合 `car`,其中每个元素都是一个对象,代表一辆车。
* 每辆车都有一个颜色属性(如红、蓝、黄等)。
2. **统计各颜色的车辆数量**
* 接下来,我们需要统计出每种颜色的车辆数量。我们可以使用一个 HashMap 来存储这些信息,键为颜色,值为该颜色的车辆数量。
3. **找出通过车辆最多的颜色**
* 最后,我们需要找出通过车辆最多的颜色。我们可以遍历 HashMap 中的每个条目,比较其值(即车辆数量),找到最大值对应的键(即颜色)。
**Java代码实现**
javaimport java.util.*; public class Main { public static void main(String[] args) { // 假设我们有一个集合 car Listcar = new ArrayList<>(); car.add(new Car("红")); car.add(new Car("蓝")); car.add(new Car("黄")); car.add(new Car("红")); car.add(new Car("蓝")); car.add(new Car("黄")); car.add(new Car("红")); car.add(new Car("蓝")); car.add(new Car("黄")); // 找出通过车辆最多的颜色 String mostColor = findMostColor(car); System.out.println(mostColor); // 输出结果:红 } /** * 找出通过车辆最多的颜色 * * @param car 车辆集合 * @return通过车辆最多的颜色 */ public static String findMostColor(List car) { // 使用 HashMap 来存储每种颜色的车辆数量 Map colorCount = new HashMap<>(); for (Car c : car) { String color = c.getColor(); if (!colorCount.containsKey(color)) { colorCount.put(color,1); } else { int count = colorCount.get(color); colorCount.put(color, count +1); } } // 找出通过车辆最多的颜色 String mostColor = null; int maxCount =0; for (Map.Entry entry : colorCount.entrySet()) { if (entry.getValue() > maxCount) { maxCount = entry.getValue(); mostColor = entry.getKey(); } } return mostColor; } /** * 车辆类 */ static class Car { private String color; public Car(String color) { this.color = color; } public String getColor() { return color; } } }
**附注**
* 这个 Java代码实现了一个方法 `findMostColor` 来找出通过车辆最多的颜色。
* 方法首先使用 HashMap 来存储每种颜色的车辆数量,然后遍历 HashMap 中的每个条目,比较其值(即车辆数量),找到最大值对应的键(即颜色)。
* 最后,方法返回通过车辆最多的颜色。
* 在 `main` 方法中,我们假设有一个集合 `car`,其中每个元素都是一个对象,代表一辆车。我们使用 `findMostColor` 方法来找出通过车辆最多的颜色,并输出结果。
**注意**
* 这个 Java代码实现了一个简单的解决方案,但可能不是最优解。
* 在实际应用中,你可能需要考虑更多因素,例如车辆数量、颜色分布等。
* 最后,请记得在实际场景中测试你的代码,以确保其正确性和性能。