华为OD机试 - 判断一组不等式是否满足约束并输出最大差(Java 2023 B卷 100分)

目录

华为OD机试 2023B卷题库疯狂收录中,刷题++点这里++

专栏导读

本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

一、题目描述

给定一组不等式,判断是否成立并输出不等式的最大差(输出浮点数的整数部分)要求:

  1. 不等式系数为 double 类型,是一个二维数组
  2. 不等式的变量为 int 类型,是一维数组
  3. 不等式的目标值为 double 类型,是一维数组
  4. 不等式约束为字符串数组,只能是">"">=""<""<=""=

例如,不等式组

  • a11x1+a12x2+a13x3+a14x4+a15x5<=b1
  • a21x1+a22x2+a23x3+a24x4+a25x5<=b2
  • a31x1+a32x2+a33x3+a34x4+a35x5<=b3:

最大差 = max{(a11x1+a12x2+a13x3+a14x4+a15x5-b1),(a21x1+a22x2+a23x3+a24x4+a25x5-b2),(a31x1+a32x2+a33x3+a34x4+a35x5-b3)},

类型为整数(输出浮点数的整数部分)

二、输入描述

a11 a12 a13 a14 a15 a21 a22 23 a24 a25. a31a32 a33 a34 a35 x1 x2 x3 x4 x5 b1 b2

b3,<=,<=,<=

1、不等式组系数(double 类型)

a11,a12,a13,a14,a15

a21,a22,a23,a24,a25

a31 ,a32 ,a33, a34, a35

2、不等式变量(int 类型):x1,x2,x3,x4,x5

3、不等式目标值(double 类型):b1,b2,b3

4、不等式约束(字符串类型):<=,<=,<=

三、输出描述

true 或者 false,最大差

例如:

输入:

2.3,3,5.6,7,6;11,3,8.6,25,1;0.3,9,5.3,66,7.8;1,3,2,7,5;340,670,80.6;

<=,<=,<=

输出:

false,458

四、Java算法源码

java 复制代码
package com.guor.od;

import java.util.*;

public class OdTest {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String line = scanner.nextLine();
        String[] split = line.split(";");
        double[][] arr = new double[3][5];
        int[] coefficient = new int[5];
        double[] inputResult = new double[3];
        int max = Integer.MIN_VALUE;

        // 初始化a11-a35
        int index = 0;
        String[] segment;
        for (int i = 0; i < 3; i++) {
            segment = split[i].split(",");
            index = 0;
            for (int j = 0; j < 5; j++) {
                arr[i][j] = Double.parseDouble(segment[index++]);
            }
        }

        // 初始化系数
        index = 0;
        segment = split[3].split(",");
        for (int i = 0; i < 5; i++) {
            coefficient[i] = Integer.parseInt(segment[index++]);
        }

        // 初始化不等式的右边
        index = 0;
        segment = split[4].split(",");
        for (int i = 0; i < 3; i++) {
            inputResult[i] = Double.parseDouble(segment[index++]);
        }

        // 计算并判断
        index = 0;
        segment = split[5].split(",");
        boolean isRight = true;
        for (int i = 0; i < 3; i++) {
            double sum = 0;
            for (int j = 0; j < 5; j++) {
                sum += arr[i][j] * coefficient[j];
            }

            if (isRight) {
                if (segment[i].equals(">")) {
                    isRight = sum > inputResult[i];
                } else if (segment[i].equals(">=")) {
                    isRight = sum >= inputResult[i];
                } else if (segment[i].equals("=")) {
                    isRight = sum == inputResult[i];
                } else if (segment[i].equals("<=")) {
                    isRight = sum <= inputResult[i];
                } else if (segment[i].equals("<")) {
                    isRight = sum < inputResult[i];
                }
            }
            max = (int) Math.max(max, sum - inputResult[i]);
        }

        System.out.println(isRight + " " + max);
    }
}

五、效果展示

1、输入

2.3,3,5.6,7,6;11,3,8.6,25,1;0.3,9,5.3,66,7.8;1,3,2,7,5;340,670,80.6;<=,<=,<=

2、输出

false 458

3、说明

🏆下一篇:华为OD机试 - 荒岛求生 - 栈Stack(Java 2023 B卷 100分)

🏆本文收录于,华为OD机试(JAVA)真题(A卷+B卷)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

相关推荐
逻辑驱动的ken7 分钟前
Java高频面试场景题07
java·开发语言·面试·职场和发展·求职招聘·春招
slarymusic12 分钟前
解决报错net.sf.jsqlparser.statement.select.SelectBody
java
我不是懒洋洋14 分钟前
【数据结构】栈和链表基本方法的实现
c语言·开发语言·数据结构·c++·链表·青少年编程·ecmascript
callJJ14 分钟前
JVM 内存区域划分详解——从生活比喻到运行时数据区全景图
java·jvm·面试·内存区域划分
小江的记录本18 分钟前
【网络安全】《网络安全与数据安全核心知识体系》(包括数据脱敏、数据加密、隐私合规、等保2.0)
java·网络·后端·python·算法·安全·web安全
北漂Zachary18 分钟前
PHP vs Python vs Java:三大编程语言终极对比
java·python·php
Paxon Zhang20 分钟前
JavaEE初阶学习web开发的第一步**计算机组成原理,操作系统,进程(基础扫盲)**
java·后端·学习·java-ee
慕容卡卡24 分钟前
大模型核心,MCP(模型上下文协议)和Session API
java·开发语言·人工智能·spring boot·spring cloud
zore_c24 分钟前
【C++】C++类和对象实现日期类项目——时间计算器!!!
java·c语言·数据库·c++·笔记·算法·排序算法
小郑加油30 分钟前
python学习Day6-7天:条件判断与基本综合应用
java·服务器·apache