网站推广软文选天天软文,微信开发者平台怎么注销,网站建设核心技术创新点,怎么做网站建设赚钱题目描述与示例
题目描述
小明在玩一个游戏#xff0c;游戏规则如下#xff1a;在游戏开始前#xff0c;小明站在坐标轴原点处#xff08;坐标值为 0#xff09;给定一组指令和一个幸运数#xff0c;每个指令都是一个整数#xff0c;小明按照指定的要求前进或者后退指…题目描述与示例
题目描述
小明在玩一个游戏游戏规则如下在游戏开始前小明站在坐标轴原点处坐标值为 0给定一组指令和一个幸运数每个指令都是一个整数小明按照指定的要求前进或者后退指定的步数。
前进代表朝坐标轴的正方向走后退代表朝坐标轴的负方向走幸运数为一个整数如果某个指令正好和幸运数相等则小明行进步数加 1 。
例如
幸运数为 3 指令数组为[2, 3, 0, -5]
指令为 2 表示前进 2 步
指令为 3 正好好和幸运数相等前进 314 步
指令为 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 正好等于幸运数前进 112 步此时坐标值为 −3
整个游戏过程中小明所处的坐标值依次为[0,−5,−3]最大坐标值为 0 。
示例二
输入
5
-5
-5 1 6 0 -7输出
1说明
总共 5 个指令幸运数为 −5依照指令行进依次如下
游戏开始前站在坐标轴原点此时坐标值为 0
指令为 −5正好等于幸运数后退 516 步此时坐标值为 −6
指令为 1 前进 1 步此时坐标值为 −5
指令为 6 前进 6 步此时坐标值为 1
指令为 0 既不前进也不后退此时坐标值为 1
指令为 −7后退 7 步此时坐标值为 −6。
整个游戏过程中小明所处的坐标值依次为 [0,−6,−5,1,1,−6]最大坐标值为 1 。
解题思路
直接按照题意进行模拟即可。
需要注意的地方有两点
题目提示了可能输入会有异常使用try-except语句进行排除。当幸运数字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 vectorusing namespace std;int main() {try {int n, m;cin n m;vectorint 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动画图解视频300LeetCode经典题200华为OD真题/大厂真题还有简历修改、模拟面试、专属HR对接将为你解锁 可上全网独家的欧弟OJ系统练习华子OD、大厂真题 可查看链接 大厂真题汇总 OD真题汇总(持续更新) 绿色聊天软件戳 od1336了解更多