华为OD机试 - 跳格子3 - 动态规划(Java 2025 A卷 200分)

博客介绍了华为OD机试中的一道动态规划题目,玩家在含有不同分数的格子上跳跃,目标是求解最大得分。文章详细阐述了题目的描述、输入输出格式,并提供了解题思路和Java算法源码,通过动态规划方法计算最大得分。最终展示了一个示例输入和输出,解释了得分计算过程。

一、题目描述

小明和朋友们一起玩跳格子游戏,

每个格子上有特定的分数 score = [1, -1, -6, 7, -17, 7],

从起点score[0]开始,每次最大的步长为k,请你返回小明跳到终点 score[n-1] 时,能得到的最大得分。

二、输入描述

第一行输入总的格子数量 n

第二行输入每个格子的分数 score[i]

第三行输入最大跳的步长 k

三、输出描述

输出最大得分

备注:

  1. 格子的总长度 n 和步长 k 的区间在 [1, 100000]
  2. 每个格子的分数 score[i] 在 [-10000, 10000] 区间中

四、测试用例

测试用例1:

1、输入

6
1 -1 -6 7 -17 7
2

2、输出

14

3、说明

输出最大得分数,小明从起点score[0]开始跳,第一次跳score[1],第二次跳到score[3],第三次跳到score[5],因此得到的最大的得分是score[0] + score[1] + score[3] + score[5] = 14

### 华为 2025 校招考题型与备考建议 华为校招考通常包括三道编程题目,涵盖多种算法和数据结构的知识点。考时间通常为120钟,总300,题目难度从简单到困难依次递增。题目类型主要集中在以下几个方面: - **基础算法题**:包括字符串处理、数组操作、排序、查找等。 - **数据结构题**:涉及链表、栈、队列、哈希表、树、图等常见数据结构的应用。 - **高级算法题**:如动态规划、贪心算法、回溯法、图论算法(如最短路径、最小生成树)等。 - **综合应用题**:结合多个知识点,要求具备较强的逻辑思维和代码实现能力。 华为考允许在本地IDE编写代码,但禁止使用已有代码库,必须手动编写所有逻辑。考链接通过邮件发送,考生需在7天内完成考,错过则半年内无法再考,因此建议提前做好充准备[^2]。 ### 真题示例与解析 #### 示例题目:格子 III(动态规划) ```java public class JumpGridIII { public static int minJumps(int[] nums) { int n = nums.length; int[] dp = new int[n]; Arrays.fill(dp, Integer.MAX_VALUE); dp[0] = 0; for (int i = 1; i < n; i++) { for (int j = 0; j < i; j++) { if (j + nums[j] >= i) { dp[i] = Math.min(dp[i], dp[j] + 1); } } } return dp[n - 1]; } public static void main(String[] args) { int[] nums = {2, 3, 1, 1, 4}; System.out.println(minJumps(nums)); // 输出 2 } } ``` 该题考查的是动态规划的应用,要求找出从起点到终点所需的最少跃次数。 ### 备考策略 1. **系统学习数据结构与算法**:掌握数组、链表、栈、队列、树、图等基本结构,熟悉排序、查找、动态规划、贪心算法等常见算法。 2. **刷题训练**:建议使用 LeetCode、牛客网等平台刷题,重点关注华为历年真题。可以参考专栏「最新最全真题华为OD真题(全栈版)」,涵盖多种语言版本的题解[^1]。 3. **模拟考环境**:使用在线编辑器练习,适应无IDE提示的环境,提升代码编写速度和准确性。 4. **多语言准备**:华为支持多种语言作答,建议至少掌握一门语言(如 Java、Python、C++)的熟练使用[^3]。 5. **参与交流答疑**:加入相关学习群组或参与线上答疑,解决疑难问题,提升解题技巧。 ### 相关问题 1. 华为校招笔中常见的数据结构有哪些? 2. 如何高效准备华为考中的动态规划题目? 3. 华为考是否允许使用本地IDE编写代码? 4. 华为OD真题可以从哪些渠道获取? 5. 华为校招笔中的编程题通常有哪些类型?
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哪 吒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值