华为od机试真题——找磨损度最高和最低的硬盘

题目描述

存储阵列上使用的一批固态硬盘,根据硬盘磨损值给定一个数组endurances,数组中每个元素表示单块硬盘的磨损度(0到10000之间)。磨损度越大,表示此盘需要更换的概率越高。需要找出磨损度最高三块盘下标和磨损度最低的三块盘下标。

输入描述

一组硬盘磨损度的数组。
说明:
(1) 数组endurances中无重复值
(2) 数组的长度范围:[6,200]
(3) 数组的下标从0开始。

输出描述

第一行:磨损度最高三块盘下标,按下标升序展示
第二行:磨损度最低的三块盘下标,按下标升序展示

算法结果

输入:
1 50 40 68 72 86 35 14 87 99 63 75
输出:
5 8 9
0 6 7

输入:
23 34 56 12 11 10
输出:
0 1 2
3 4 5

算法解析

import java.util.Arrays;
import java.util.List;
import java.util.Locale;
import java.util.Scanner;
import java.util.stream.Collectors;

public class HardDrives {
    public static void main(String[] args) {
        // 输入
        Scanner scanner = new Scanner(System.in);
        String[] enduranceStr = scanner.nextLine().split(" ");
        int len = enduranceStr.length;
        int[] endurance = new int[len];
        for (int i = 0; i < len; i++) {
            endurance[i] = Integer.parseInt(enduranceStr[i]);
        }

        List<Integer> endurancesList = Arrays.stream(endurance).boxed().collect(Collectors.toList());
        // 升序排序
        Arrays.sort(endurance);
        int[] minThreeIndex = new int[3];
        for (int i = 0; i < 3; i++) {
            minThreeIndex[i] = endurancesList.indexOf(endurance[i]);
        }
        int[] maxThreeIndex = new int[3];
        for (int i = 0; i < 3; i++) {
            maxThreeIndex[i] = endurancesList.indexOf(endurance[len - 1 - i]);
        }
        // 结果升序排序
        Arrays.sort(maxThreeIndex);
        Arrays.sort(minThreeIndex);

        // 输出
        StringBuilder outputMaxThreeIndex = new StringBuilder();
        for (int index : maxThreeIndex) {
            outputMaxThreeIndex.append(String.format(Locale.ROOT, "%d ", index));
        }
        System.out.println(outputMaxThreeIndex.substring(0, outputMaxThreeIndex.length() - 1));

        StringBuilder outputMinThreeIndex = new StringBuilder();
        for (int index : minThreeIndex) {
            outputMinThreeIndex.append(String.format(Locale.ROOT, "%d ", index));
        }
        System.out.println(outputMinThreeIndex.substring(0, outputMinThreeIndex.length() - 1));
    }
}

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-23 09:36:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-23 09:36:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-23 09:36:05       87 阅读
  4. Python语言-面向对象

    2024-04-23 09:36:05       96 阅读

热门阅读

  1. oracle11g集群挂起

    2024-04-23 09:36:05       29 阅读
  2. .Net4.0 Web.config 配置实践

    2024-04-23 09:36:05       38 阅读
  3. Apache Spark 的基本概念和在大数据分析中的应用

    2024-04-23 09:36:05       34 阅读
  4. Building VTK in Ubuntu 22.04. OpenGL missing.

    2024-04-23 09:36:05       31 阅读
  5. CentOS 源码安装 pip3

    2024-04-23 09:36:05       32 阅读