【独家OD2023C卷真题】20天拿下华为OD笔试2023C-小明能到达的最大坐标值【欧弟算法】全网注释最详细分类最全的华为OD真题题解

题目描述与示例

题目描述

小明在玩一个游戏,游戏规则如下:在游戏开始前,小明站在坐标轴原点处(坐标值为 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

示例一

输入

2
1
-5 1

输出

0

说明

总共 2 个指令,幸运数为 1 ,依照指令行进,依次如下游戏开始前,站在坐标轴原点,此时坐标值为 0

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

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

示例二

输入

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

解题思路

直接按照题意进行模拟即可。

需要注意的地方有两点:

  1. 题目提示了可能输入会有异常,使用try-except语句进行排除。
  2. 当幸运数字m是负数时,此时行进的方向是往后走,步数增加1指的是往后多退一步。

代码

Python

# 题目:2023C-小明能到达的最大坐标值
# 分值:100
# 作者:许老师-闭着眼睛学数理化
# 算法:模拟、
# 代码看不懂的地方,请直接在群上提问try:# 数组长度nn = int(input())# 幸运数字mm = int(input())# 指令数组numsnums = list(map(int, input().split()))# 初始化当前位置坐标cur_pos,最大坐标anscur_pos, ans = 0, 0for num in nums:# 如果num是0,直接跳过# 因为即使幸运数是0,也不会往前或往后走if num == 0:continue# 如果num是幸运数字if num == m:# 当前位置多走1步# 如果当前num是负数,则多后退一步# 如果当前num是整数,则多前进一步cur_pos += 1 if num >= 0 else -1# 无论是不是幸运数字,都要走num步cur_pos += num# 更新答案ans = max(ans, cur_pos)print(ans)
# 若出现异常,输出12345
except:print(12345)

Java

import java.util.Scanner;public class Main {public static void main(String[] args) {try {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int m = scanner.nextInt();int[] nums = new int[n];for (int i = 0; i < n; i++) {nums[i] = scanner.nextInt();}int cur_pos = 0, ans = 0;for (int num : nums) {if (num == 0){continue;}if (num == m) {cur_pos += (num > 0) ? 1 : -1;}cur_pos += num;ans = Math.max(ans, cur_pos);}System.out.println(ans);} catch (Exception e) {System.out.println(12345);}}
}

C++

#include <iostream>
#include <vector>using namespace std;int main() {try {int n, m;cin >> n >> m;vector<int> nums(n);for (int i = 0; i < n; ++i) {cin >> nums[i];}int cur_pos = 0, ans = 0;for (int num : nums) {if (num == 0){continue;}if (num == m) {cur_pos += (num > 0) ? 1 : -1;}cur_pos += num;ans = max(ans, cur_pos);}cout << ans << endl;} catch (...) {cout << 12345 << endl;}return 0;
}

时空复杂度

时间复杂度:O(N)

空间复杂度:O(1)


华为OD算法/大厂面试高频题算法练习冲刺训练

  • 华为OD算法/大厂面试高频题算法冲刺训练目前开始常态化报名!目前已服务100+同学成功上岸!

  • 课程讲师为全网50w+粉丝编程博主@吴师兄学算法 以及小红书头部编程博主@闭着眼睛学数理化

  • 每期人数维持在20人内,保证能够最大限度地满足到每一个同学的需求,达到和1v1同样的学习效果!

  • 60+天陪伴式学习,40+直播课时,300+动画图解视频,300+LeetCode经典题,200+华为OD真题/大厂真题,还有简历修改、模拟面试、专属HR对接将为你解锁

  • 可上全网独家的欧弟OJ系统练习华子OD、大厂真题

  • 可查看链接 大厂真题汇总 & OD真题汇总(持续更新)

  • 绿色聊天软件戳 od1336了解更多

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

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

相关文章

集成测试如何做?

今天学习下如何进行集成测试。 什么是集成测试? 集成测试被定义为一种测试类型&#xff0c;其中软件模块在逻辑上集成并作为一个组进行测试。一个典型的软件项目由多个软件模块组成&#xff0c;由不同的程序员编码。此级别测试的目的是在集成这些软件模块时&#xff0c;暴露…

C语言还会存在多久

一、C语言的生命力 在当前的科技发展和就业市场需求下&#xff0c;可以肯定地说C语言并没有像一些新兴语言&#xff08;如Python、JavaScript等&#xff09;那样受到大量的关注。然而&#xff0c;并不意味着学习C语言的人会越来越少。 首先&#xff0c;C语言作为一种深受尊重…

全网最新最全的Appium自动化:Appium常用操作之H5页面操作 --待补充!

手机chrome浏览器操作&#xff1a; 手机端chrome浏览器一般用于打开H5手机版网站&#xff0c;它的操作方式与PC端的浏览器操作&#xff08;即selenium对浏览器的操作&#xff09;是一模一样的&#xff0c;由于切换后的WebView页面也属于网页 下述的方法中部分支持在webview页面…

什么是JVM的内存模型?详细阐述Java中局部变量、常量、类名等信息在JVM中的存储位置

导航&#xff1a; 【Java笔记踩坑汇总】Java基础JavaWebSSMSpringBootSpringCloud瑞吉外卖/黑马旅游/谷粒商城/学成在线设计模式面试题汇总性能调优/架构设计源码-CSDN博客 目录 一、JVM基本介绍 二、JVM内存模型 2.0 概述 2.1 类加载子系统 2.2 运行时数据区 2.2.0 基本…

python中的输入输出

文章目录 输入函数input()例子1.如何输入获得两个字符串?&#xff08;若输入abc def或abc,def)2.如何输入获得两个整数?&#xff08;若输入34,567)3.如何输入后获得一个元素均为数值型的列表?&#xff08;若输入12,3.4,567或[12,3.4,567]&#xff09; 输出输出函数print()pr…

从无人驾驶汽车到虚拟助手:人工智能如何改变我们的世界

人工智能对我们的生活影响有多大 近年来&#xff0c;人工智能迅速发展&#xff0c;成为影响社会各个领域的重要技术。本文将深入探讨人工智能在无人驾驶汽车、虚拟助手等领域的应用和影响&#xff0c;剖析人工智能对我们的生活、工作和社交等方面所带来的深刻变革。 目录 人…

【上海大学《面向对象程序设计A》课程小项目报告】抽象向量类模板及其派生类

1 项目内容及要求 本项目通过设计一个抽象向量类模板&#xff0c;以及一个通用的向量类模板和一个字符串类作为其派生类&#xff0c;以满足各种应用场景中的数据存储和处理需求。 项目内容&#xff1a; 抽象向量类模板。派生向量类。派生字符串类。测试及异常处理。联合测试…

如何计算光伏电站的发电量?

光伏电站的发电量是衡量其性能和经济效益的关键指标。准确地预测和计算光伏电站的发电量对于投资决策、系统设计和优化至关重要。以下是一些计算光伏电站发电量的主要步骤和方法&#xff1a; 1、确定光伏电站的规模和配置 了解光伏电站的组件数量、类型、功率等级以及安装位置…

html和css写QQ会员页面导航

目录 1、css代码 2、html代码 效果图 1、css代码 <style>* {padding: 0;margin: 0;list-style: none;text-decoration: none;}div {margin: 30px auto;}li {float: left;height: 60px;background-color: rgb(102, 102, 102);line-height: 40px;}img {height: 100%;ma…

【LeetCode 0125】【双指针】有效回文

题目 https://leetcode.com/problems/valid-palindrome/ 题解 双指针&#xff1a;左指针右移过程时跳过非法字符&#xff0c;右指针左移时跳过非法字符。 如果左指针大于等于右指针&#xff0c;表示有效回文&#xff1b;如果两指针所对应的字符如果不等&#xff0c;则不是有…

Vellum —— 相关特点

目录 Cloth Breaking and tearing Paneling and draping Cloth simulation Calculating mass and thickness Working with low res and high res cloth Quick moving cloth Softbody Vellum softbodies Plasticity with softbodies Constraints Stitch and slid…

Java集合常见问题

目录 Java集合 1.前言2.集合3.Collection接口类3.1 List接口3.1.1 ArrayList&#xff08;常用&#xff09;3.1.2 LinkedList&#xff08;常用&#xff09;3.1.3 Vector&#xff08;不常用&#xff09; 3.2 Set接口3.2.1 HashSet&#xff08;常用&#xff09;3.2.2 LinkedHash…

配置Docker OpenWrt与宿主机网络互通且作为宿主机网关

目录 背景环境 操作步骤Docker安装OpenWrt确认宿主机网络接口名创建macvlan网络开启桥接网卡的混淆模式为docker创建macvlan网络 创建OpenWrt容器登录容器更改ip网段重启network生效配置 与宿主机网络互通宿主机创建新的macvlan接口为新接口分配ip并启用添加静态路由使宿主机与…

【银行测试】第三方支付功能测试点+贷款常问面试题(详细)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、第三方支付功能…

华为快应用中自定义Slider效果

文章目录 一、前言二、实现代码三、参考链接 一、前言 在华为快应用中官方提供了<slider>控件&#xff0c;但是这个控件的限制比较多&#xff0c;比如滑块无法自定义&#xff0c;所以这里进行下自定义&#xff0c;自己修改样式。 二、实现代码 整体效果如下: 源码如下…

SL6015B降压恒流60V耐压1.5A高辉调光LED芯片 电路简单 元器件少

SL6015B是一款专为LED照明应用设计的降压恒流芯片&#xff0c;具有60V的耐压能力&#xff0c;最大输出电流可达1.5A。它采用高辉调光方式&#xff0c;通过改变输入电压或电流来调节LED的亮度。此外&#xff0c;SL6015B还具有电路简单和元器件数量少的特点&#xff0c;使其成为一…

QT-在ui界面中给QWidget增加Layout布局的两种方法

QT-在ui界面中给QWidget增加Layout布局的两种方法 方式一 在UI界面&#xff0c;用拖拽的方式加入Layout方式二 用notepad软件打开.ui文件&#xff0c;手动加入Layout代码 目标&#xff1a;去除右下角红标&#xff0c;给tab标签增加Layout属性。 方式一 在UI界面&#xff0c;用…

leetcode:前序遍历

题目描述 题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 题目分析 这道题的难点在于&#xff0c;前序遍历一遍之后需要将数值存在数组里&#xff0c;returnsize就是数组的大小 所以我们先构建一个函数来计算节点的个数 然后我…

中国AI大模型,应该如何商业化?

虽然大模型商业化的路径较为清晰&#xff0c;目前国内厂商也都在积极探索&#xff0c;但大模型的商业化之路&#xff0c;不能仅限于商业模式的探索尝试&#xff0c;更在于解决大模型发展的底层问题。 作者|斗斗 编辑|皮爷 出品|产业家 如今&#xff0c;大模型的商业化问题再…

深度观察|近视防控乱象下,角膜塑形镜撬动百亿市场的背后…

前不久&#xff0c;“晒眼皮”莫名上了热搜。顾名思义&#xff0c;就是在太阳底下闭眼&#xff0c;让眼皮享受日光浴。 不少近视患者相信&#xff0c;这种做法可以延缓近视&#xff0c;甚至可以让近视度数“清零”。毫无疑问&#xff0c;这是一个收割智商税的做法&#xff0c;…