华为od机试C卷【跳马问题】

这是一个关于解决华为在线测评(OD)中的算法问题,题目要求在m*n的棋盘上,根据数字判断马的移动步数,模仿中国象棋马的移动方式,目标是判断所有马是否能移动到同一位置并给出最小步数。当所有马无法聚集时,输出0。给定示例展示了不同情况的处理结果。
摘要由CSDN通过智能技术生成

目录

题目

思路

code


题目

输入 m 和 n 两个数,m 和 n 表示一个 m*n 的棋盘。输入棋盘内的数据。棋盘中存在数字和"."两种字符,如果是 数字表示 该位置是一匹马,如果是数字表示该位置为空的,棋盘内的数字表示为该马能走的最大步数。

例如棋盘内某个位置一个数字为 k,表示该马只能移动 1~k 步的距离。

棋盘内的马移动类似于 中国象棋 中的马移动,先在水平或者垂直方向上移动一格,然后再将其移动到对角线位置。

棋盘内的马可以移动到同一个位置,同一个位置可以有多匹马。

请问能否将棋盘上所有的马移动到同一个位置,若可以请输入移动的最小步数。若不可以输出 0。

输入描述

输入m 和 n 两个数,m 和 n 表示一个 m*n 的棋盘。输入棋盘内的数据。

输出描述

能否将棋盘上所有的马移动到同一个位置,若可以请输入移动的最小步数。若不可以输出 0。

示例1:

输入

3 2

. .

2 .

. . 输出

0

示例2:

输入

3 5

4 7 . 4 8

4 7 4 4 .

7 . . . .

输出

17

思路

code

var fn = function (M, N, matrix) {


    let di
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值