华为OD机试真题 Java 实现【核酸最快检测效率】【2022.11 Q4 新题】

简介: 华为OD机试真题 Java 实现【核酸最快检测效率】【2022.11 Q4 新题】



package com.company;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int a = in.nextInt();//采样人数
        int b = in.nextInt();//志愿者
        List<Persion> list1 =new LinkedList<>();
        for (int sc=0;sc<a;sc++) {
            int dd = in.nextInt();
            double res=  dd;
            list1.add(new Persion(res));
        }
        double[] dp =new double[b+1];
        dp[0]= culate(list1);//分配0个志愿者时的最大值
        for (int i = 1; i <= b; i++) {//分配志愿者个数
            double[][] sum=new double[list1.size()][list1.size()];
            for (int j = 0; j < list1.size(); j++) {
                //计算当前分配人员的速率
                Persion persion = list1.get(j);
                if(persion.getPnum()<=3){
                    //计算此方案的sum和
                    int pnum = persion.getPnum();
                    if(pnum==0){//如果为0分配一个人员
                        sum[j][j]=dp[i-1]+persion.getSpeed()*0.2;
                    }
                    if(pnum==1){
                        sum[j][j]=dp[i-1]+persion.getSpeed()*0.1;
                    }
                    if(pnum==2){
                        sum[j][j]=dp[i-1]+persion.getSpeed()*0.2;
                    }
                    if(pnum==3){
                        sum[j][j]=dp[i-1]+persion.getSpeed()*0.3;
                    }
                }
            }
            //找出最大的J对应的值 就是 dp[i] 的值
            double index=0;
            double max =0;
            for (int j = 0; j < sum.length; j++) {
                double temp=sum[j][j];
                if (temp>max){
                    max=temp;
                    index=j;
                }
            }
            dp[i]=max;
            list1.get((int) index).setPnum(list1.get((int) index).getPnum()+1);
        }
        System.out.println((int)dp[b]);
    }
    private static double culate(List<Persion> list1) {
        double sum=0;
        for (Persion persion : list1) {
            int pnum = persion.getPnum();
            if(pnum==0){
                sum=sum+persion.getSpeed()*0.8;
            }
            if(pnum==1){
                sum=sum+persion.getSpeed();
            }
            if(pnum==2){
                sum=sum+persion.getSpeed()*1.1;
            }
            if(pnum==3){
                sum=sum+persion.getSpeed()*1.2;
            }
            if(pnum==4){
                sum=sum+persion.getSpeed()*1.3;
            }
        }
        return sum;
    }
    static class Persion{
    double speed=-1.0;
    int pnum=0;   //最大是4
    Persion(double speed){
        this.speed=speed;
    }
    public double getSpeed() {
        return speed;
    }
    public void setSpeed(double speed) {
        this.speed = speed;
    }
    public int getPnum() {
        return pnum;
    }
    public void setPnum(int pnum) {
        this.pnum = pnum;
    }
}
}
```

我想建一个一个华为机试题的群聊,找工作的朋友可以一起讨论,大家可以一起分享题库

相关文章
APK检测管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL(二)
APK检测管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL
|
2月前
|
存储 分布式计算 算法
Java 大视界 -- Java 大数据在智能教育在线考试监考与作弊检测中的技术创新(193)
本文探讨了Java大数据技术在智能教育在线考试监考与作弊检测中的创新应用。随着在线考试的普及,作弊问题日益突出,传统监考方式难以应对。通过Java大数据技术,可实现考生行为分析、图像识别等多维度监控,提升作弊检测的准确性与效率。结合Hadoop与Spark等技术,系统能实时处理海量数据,构建智能监考体系,保障考试公平性,推动教育评价体系的数字化转型。
|
存储 算法 Java
Java面试题:深入探究Java内存模型与垃圾回收机制,解释JVM中堆内存和栈内存的主要区别,谈谈对Java垃圾回收机制的理解,Java中的内存泄漏及其产生原因,如何检测和解决内存泄漏问题
Java面试题:深入探究Java内存模型与垃圾回收机制,解释JVM中堆内存和栈内存的主要区别,谈谈对Java垃圾回收机制的理解,Java中的内存泄漏及其产生原因,如何检测和解决内存泄漏问题
146 0
|
10月前
|
缓存 算法 Java
本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制
在现代软件开发中,性能优化至关重要。本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制。通过调整垃圾回收器参数、优化堆大小与布局、使用对象池和缓存技术,开发者可显著提升应用性能和稳定性。
165 6
|
网络协议 Java
JAVA实现心跳检测【长连接】
这篇文章介绍了Java中实现心跳检测机制的方法,包括心跳机制的简介、实现方式、客户端和服务端的代码实现,以及具体的测试结果。文中详细阐述了如何通过自定义心跳包和超时检测来维持长连接,并提供了完整的客户端和服务端示例代码。
JAVA实现心跳检测【长连接】
|
11月前
|
安全 Java Python
基于python-django的Java网站全站漏洞检测系统
基于python-django的Java网站全站漏洞检测系统
111 0
|
监控 算法 安全
Java并发编程案例分析:死锁的检测与解决
Java并发编程案例分析:死锁的检测与解决
121 2
|
SQL 安全 JavaScript
Java中的代码审计与漏洞检测
Java中的代码审计与漏洞检测
|
Java API Apache
探讨Java中检测字符串是否包含数字和字母的技术
探讨Java中检测字符串是否包含数字和字母的技术
366 2
|
数据采集 Java 数据挖掘
最新Python+OpenCV+dlib汽车驾驶员疲劳驾驶检测!,2024年最新网易云java面试
最新Python+OpenCV+dlib汽车驾驶员疲劳驾驶检测!,2024年最新网易云java面试
最新Python+OpenCV+dlib汽车驾驶员疲劳驾驶检测!,2024年最新网易云java面试