华为OD机试真题 Java 实现【数字序列比大小】【2023 B卷 100分】,田忌赛马,永远比你大,你服不服?

news2024/12/25 12:33:48

在这里插入图片描述

目录

    • 一、题目描述
    • 二、输入描述
    • 三、输出描述
    • 四、解题思路
    • 五、Java算法源码
    • 六、效果展示
      • 1、输入
      • 2、输出
      • 3、说明

大家好,我是哪吒。

做技术,我是认真的,立志于打造最权威的华为OD机试真题专栏,帮助那些与我有同样需求的人(考华为OD机试,升职加薪),每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑

华为OD机试(JAVA)真题(A卷+B卷)

一、题目描述

A,B两个人万一个数字比大小的游戏,在游戏前,两个人会拿到相同长度的两个数字序列,两个数字序列不相同且其中的数字是随机的。

A,B各自从数字序列中挑选出一个数字进行大小比较,赢的人得1分,输的人扣1分,相等则各自的分数不变,用过的数字需要丢弃。

求A可能赢B的最大分数。

二、输入描述

输入数据的第一个数字表示数字序列的长度N,后面紧跟着两个长度为N的数字序列。

三、输出描述

A可能赢B的最大分数。

这里要求计算A可能赢B的最大分数,不妨假设,A知道B的数字序列,且总是B先挑选数字并明示;

可以采用贪心策略,能赢的一定要赢,要输的尽量减少损失。

四、解题思路

这是典型的田忌赛马问题,首先将两个序列排序,然后遍历序列A,每次找到序列B中比A[i]小的数字中最大的数字即可。

五、Java算法源码

/**
 * 田忌赛马,永远比你大,你服不服?
 */
public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    // 数字序列的长度
    int N = Integer.parseInt(sc.nextLine());
    // 数字序列A
    int[] A = Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
    // 数字序列B
    int[] B = Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();

    // 排序
    Arrays.sort(A);
    Arrays.sort(B);

    // 序列A最小值下角标
    int left_a = 0;
    // 序列A最大值下角标
    int right_a = N - 1;

    // 序列B最小值下角标
    int left_b = 0;
    // 序列B最大值下角标
    int right_b = N - 1;

    // A可能赢B的最大分数
    int max = 0;

    // 遍历序列A
    while (left_a <= right_a) {
        // 赢的人得1分
        if (A[right_a] > B[right_b]) {
            max += 1;
            right_a--;
            right_b--;
            // 输的人得1分
        } else if (A[right_a] < B[right_b]) {
            max -= 1;
            left_a++;
            right_b--;
        } else {//相等则各自分数不变
            if (A[left_a] > B[left_b]) {
                max += 1;
                left_a++;
                left_b++;
            } else {
                if (B[right_b] > A[left_a]) {
                    max -= 1;
                }
                left_a++;
                right_b--;
            }
        }
    }

    System.out.println(max);
}

六、效果展示

1、输入

3
7 5 9
4 6 8

2、输出

3

3、说明

  • 7比6大得一分;
  • 5比4大得一分;
  • 9比8大得一分;

田忌赛马,永远比你大,你服不服?
在这里插入图片描述


🏆下一篇:华为OD机试真题 Java 实现【跳房子II】【2023 B卷 100分】,附详细解题思路

🏆本文收录于,华为OD机试(JAVA)(2022&2023)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/748197.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ES6——Promise

promise 含义&#xff1a;异步编程解决方案 特点&#xff1a;1、状态不受外界影响&#xff0c;状态有三种&#xff1a;pending、fulfilled、rejected 2、状态不可逆&#xff0c;只能pending -> fulfilled、pending -> rejected 缺点&#xff1a;无法取消、不设置回调函…

常见的人体静电消除器的工作原理

人体静电消除器是一种用于消除人体带有静电的装置。静电是指物体表面具有电荷的现象&#xff0c;当人体带有静电时&#xff0c;会导致一些不舒适的感觉&#xff0c;同时也容易引起电击事故。 人体静电消除器的工作原理主要通过以下几个方面来实现&#xff1a; 1.接地&#xf…

深入篇【Linux】学习必备:认识冯诺依曼系统+理解操作系统(‘‘管理‘‘)

深入篇【Linux】学习必备&#xff1a;认识冯诺依曼系统理解操作系统(管理&#xff09; Ⅰ.冯诺依曼系统结构1.特点(what)2.理解(why)3.案例(how) Ⅱ.操作系统概念与定位1.概念(what)2.设计OS目的(why)3.管理(how) Ⅰ.冯诺依曼系统结构 1.特点(what) 我们认识的计算机&#xff…

ETHERCAT转ETHERCAT网关三菱plc支持ethercat吗

大家好&#xff0c;今天要和大家分享一款神器——远创智控YC-ECAT-ECAT通讯网关&#xff01;这款网关有什么厉害的呢&#xff1f;且听我慢慢道来。 首先&#xff0c;YC-ECAT-ECAT是一款自主研发的ETHERCAT从站功能的通讯网关。那什么是ETHERCAT呢&#xff1f;简单来说&#xff…

揭秘ChatGPT的流式返回

107. 揭秘ChatGPT的流式返回 ChatGPT是一种强大的语言模型&#xff0c;可以生成自然语言响应。在传统的请求/响应模型中&#xff0c;客户端发送请求&#xff0c;服务器处理请求后返回响应。但是&#xff0c;使用流式返回可以实现持续的数据流&#xff0c;使得客户端能够实时接…

水文水动力模型在城市内涝、城市排水、海绵城市规划设计中深度应用

随着计算机的广泛应用和各类模型软件的发展&#xff0c;将排水系统模型作为城市洪灾评价与防治的技术手段已经成为防洪防灾的重要技术途径。将聚焦于综合利用GIS及CAD等工具高效地进行大规模城市排水系统水力模型的建立&#xff0c;利用SWMM实现排水系统水力模拟。讲解SWMM深度…

rabbitmq使用springboot实现fanout模式

一、fanout模式 类型&#xff1a;fanout特点&#xff1a;Fanout—发布与订阅模式&#xff0c;是一种广播机制&#xff0c;它是没有路由key的模式。 二、实现 1、引入相应的pom文件 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project x…

左神算法 重要技巧:递归的加速技巧(斐波那契数列套路)以及推广

目录 【案例1】【十分重要 &#xff1a; 斐波那契递归套路&#xff0c;只要像斐波那契这种严格递归都可以进行类似的优化】 【有严格的递归项后&#xff0c;通过线性代数的知识进行优化】 【代码实现】 【技巧推广】 【实例1 使用这个技巧】 【题目描述】 【思路解析】 …

求两个数的最大值max

函数实现 int max(int a, int b); 函数接收两个整数参数&#xff0c;在内部用if语句判断哪个大&#xff0c;返回大的即可。 完整代码 #include <iostream> using namespace std;int max(int a, int b) {if (a > b){return a;}else{return b;} }int main() {int n1…

开发工具篇第25讲:阿里云MFA绑定Chrome浏览器Authenticator插件

开发工具篇第25讲&#xff1a;阿里云MFA绑定Chrome浏览器Authenticator插件 本文是开发工具篇第25讲&#xff0c;登录阿里云旗下产品时&#xff0c;需要使用mfa登录&#xff0c;每次如果要用手机看mfa码很麻烦&#xff0c; Chrome浏览器提供了一个快捷的登录方法&#xff0c;可…

软件工程师,学习下JavaScript ES6新特性吧

概述 作为一名软件工程师&#xff0c;不管你是不是前端开发的岗位&#xff0c;工作中或多或少都会用到一点JavaScript。JavaScript是大家所了解的语言名称&#xff0c;但是这个语言名称是Oracle公司注册的商标。JavaScript的正式名称是ECMAScript。1996年11月&#xff0c;JavaS…

Mysql根据积分排名

积分表&#xff1a;t_participant_points 1、带并列 SELECT p.*, CASE WHEN prevRank p.total_points THEN curRank WHEN prevRank : p.total_points THEN curRank : curRank 1 END AS ranking FROM ( SELECT total_points …

LabVIEW-实现波形发生器

一、题目 用两种方法实现一种多类型信号波形发生器&#xff08;至少包括&#xff1a;正弦波、三角波、方波等&#xff09;&#xff0c;可以调节信号频率、幅度、相位等参数&#xff0c;可以图形化显示信号波形。 需要给出产生信号波形的基本方法、程序设计基本方法以及程序实现…

931.下降路径最小和

931.下降路径最小和 给你一个 n x n 的 方形 整数数组 matrix &#xff0c;请你找出并返回通过 matrix 的下降路径 的 最小和 。 下降路径 可以从第一行中的任何元素开始&#xff0c;并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列&#xff08;即…

【图像处理】经营您的第一个U-Net以进行图像分割

一、说明 AI厨师们&#xff0c;今天您将学习如何准备计算机视觉中最重要的食谱之一&#xff1a;U-Net。本文将叙述&#xff1a;1语义与实例分割&#xff0c;2 图像分割中还使用了其他损失&#xff0c;例如Jaccard损失&#xff0c;焦点损失&#xff1b;3 如果2D图像分割对您来说…

刘铁猛C#教程笔记——详解类型,变量和对象第二节

C#类型派生谱系 C#语言五大基本类型&#xff1a; 1.类类型&#xff1a;由class关键字声明的类型&#xff0c;常见的类类型有&#xff1a;string&#xff0c;object 2.结构体类型&#xff1a;由struct关键字声明的类型&#xff0c;常见的结构体类型有&#xff1a;int&#xff0c…

Vue3 基本语法

尤雨溪 文章目录 前言MVVM框架认识Vue文本渲染指令 v-text属性绑定指令title 属性动态绑定class属性动态绑定style 属性动态绑定 事件绑定 事件名条件渲染指令v-ifv-if 和 v-showv-else 和 v-else-if 循环遍历指令 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&am…

Documentation 代码注释文档规范

1. 代码注释文档规范的添加 /// 代码规范文档 struct DocumentationBootcamp: View {// MARK: PROPERTIESState var data:[String] ["Apples", "Oranges", "Bananas"]State var showAlert: Bool false// MARK: BODY// Code Folding : 代码折叠…

Spring Boot原理分析(二):IoC

文章目录 〇、IoC思想和IoC容器IoC体现了什么思想什么是IoC容器 一、Spring IoC容器的继承层次1.BeanFactory2.ListableBeanFactory3.HierarchicalBeanFactory4.ApplicationContext5.常用的ApplicationContext的实现类ClassPathXmlApplicationContext&#xff08;基于XML配置&a…

FreeRTOS详细目录结构和作用

FreeRTOS各个目录的功能简介 1. Demo目录&#xff1a;这个目录下主要包含了大量官方支持的微控制器和不同平台上的项目&#xff0c;包括常用的stm32和keil平台下进行开发的项目。我主要使用的是CORTEX_STM32F103_Keil和common两个目录&#xff0c;对系统进行精简的话可以只保留…