华为OD机试C卷-- 小华地图寻宝(Java & JS & Python & C)

本文介绍了一个寻宝问题,小华在地图上寻找黄金,受限于坐标数位之和不超过k的条件。文章详细阐述了问题描述、输入输出格式,并提出通过初始化、标记可访问区域、使用DFS或BFS搜索的算法思路。同时,提供了Java、Python和JavaScript三种语言的算法源码。

获取题库不需要订阅专栏,可直接私信我进入CSDN领军人物top1博主的华为OD交流圈观看完整题库、最新面试实况、考试报告等内容以及大佬一对一答疑。
题目描述
小华按照地图去寻宝,地图上被划分成 m 行和 n 列的方格,横纵坐标范围分别是 [0, n-1] 和 [0, m-1]。

在横坐标和纵坐标的数位之和不大于 k 的方格中存在黄金(每个方格中仅存在一克黄金),但横坐标和纵坐标之和大于 k 的方格存在危险不可进入。小华从入口 (0,0) 进入,任何时候只能向左,右,上,下四个方向移动一格。

请问小华最多能获得多少克黄金?

输入描述
坐标取值范围如下:

  • 0 ≤ m ≤ 50
  • 0 ≤ n ≤ 50
    k 的取值范围如下:
  • 0 ≤ k ≤ 100
    输入中包含3个字数,分别是m, n, k

输出描述
输出小华最多能获得多少克黄金

题目解析
小华需要在满足条件的网格中收集黄金,条件是:网格的横纵坐标数位之和不大于 𝑘,且横纵坐标之和不大于 𝑘。我们需要设计一个算法来帮助小华找到他能够到达并收集黄金的最大数量,同时避开不满足条件的网格。

算法思路
1.初始化: 创建一个 𝑚×𝑛的矩阵,表示整个地图,其中1表示有黄金,0表示无黄金或不能进入的区域。
2.标记可访问区域:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值