2024年华为OD机试真题-最大坐标值

华为OD机试真题-最大坐标值-2024年OD统一考试(D卷)

题目描述:

小明在玩一个游戏,游戏规则如下:

在游戏开始前,小明站在坐标轴原点处(坐标值为0)。

给定一组指令和一个幸运数,每个指令都是一个整数,小明按照指定的要求前进或者后退指定的步数。前进代表朝坐标轴的正方向走,后退代表朝坐标轴的负方向走。

幸运数为一个整数,如果某个指令正好和幸运数相等,则小明行进步数加1。

例如:

幸运数为3,指令为[2,3,0,-5]

指令为2,表示前进2步;

指令为3,正好和幸运数相等,前进3+1=4步;

指令为0,表示原地不动,既不前进,也不后退。

指令为-5,表示后退5步;

请你计算小明在整个游戏过程中,小明所处的最大坐标值。

输入描述:

第一行输入1个数字,代表指令的总个数n(1<=n<=100)。

第二行输入1个数字,代表幸运数m(-100<=m<=100)

第三行输入n个指令,每个指令值的取值范围为:-100<=指令值<=100。

输出描述:

输出在整个游戏过程中,小明所处的最大坐标值。异常情况下输出:12345

补充说明:

 收起

示例1

输入:

2
1
-5 1

输出:

0

说明:

总共2个指令,幸运数为1,依照指令行进,依次如下:

游戏开始前,站在坐标轴原点,此时坐标值为0;

指令为-5,后退5步,此时坐标值为-5;

指令为1,正好等于幸运数,前进1+1=2步,此时坐标值为-3;

整个游戏过程中,小明所处的坐标值依次为[0,-5,-3],最大坐标值为0。

示例2

输入:

5
-5
-5 1 6 0 -7

输出:

1

说明:

总共5个指令,幸运数为-5,依照指令行进,依次如下:

游戏开始前,站在坐标轴原点,此时坐标值为0;

指令为-5,正好等于幸运数,后退5+1=6步,此时坐标值为-6;

指令为1,前进1步,此时坐标值为-5;

指令为6,前进6步,此时坐标值为1;

指令为0,既不前进,也不后退,此时坐标值为1;

指令为-7,后退7步,此时坐标值为-6;

整个游戏过程中,小明所处的坐标值依次为[0,-6,-5,1,1,-6],最大坐标值为1。

解题思路:

又是一道很长的题目,主要考察阅读理解,其实就是使用数组,遍历排序解答。

Java解法:

import java.util.Scanner;
 
import java.util.Arrays;
 
public class Main {
    public static void main(String[] args) {
        try{
            Scanner in = new Scanner(System.in);
            int n = in.nextInt();
            in.nextLine();
            int m = in.nextInt();
            in.nextLine();
            int[] ins = new int[n+1];
            if(n>100 || n < 1 || m<-100 || m>100){
                throw new Exception();
            }
           
            for(int i = 1 ; i < n+1 ; i++){
                int num = in.nextInt();
                if(num>100 || num <-100){
                    throw new Exception();
                }
    

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

华为OD机试题库2024年 文章被收录于专栏

2024年OD统一考试(D卷),最新最完整题库。 收录130+道真题,提供解题思路,Java/Python/C++三种答案源码。

全部评论
华为OD机试2024年最新题库已经创建专栏啦,欢迎大家订阅,大家有关华为OD的问题,都可以留言交流哈~
1
送花
回复 分享
发布于 06-25 00:03 北京
哈哈,机考遇到了这道原题
点赞
送花
回复 分享
发布于 06-30 09:04 江苏
秋招专场
校招火热招聘中
官网直投

相关推荐

头像
不愿透露姓名的神秘牛友
06-17 20:15
华为od 部门终端bg 0 本科211
点赞 评论 收藏
分享
6 7 评论
分享
牛客网
牛客企业服务