【2023秋招】10月19日华为通用软件开发三道题

2023大厂真题提交网址(含题解):

www.CodeFun2000.com(http://101.43.147.120/)

最近我们一直在将收集到的机试真题制作数据并搬运到自己的OJ上,供大家免费练习,体会真题难度。现在OJ已录入50+道2023年最新大厂真题,同时在不断的更新。同时,可以关注"塔子哥学算法"公众号获得每道题的题解。
在这里插入图片描述

完整真题解析: 【2023秋招】10月19日华为通用软件开发三道题及题解

第一题:跳跳棋

题目内容

已知存在一个跳跳棋的棋盘( 行数 0 < M ≤ 20 0\lt M \le 20 0<M20 ,列数 0 < N ≤ 20 0\lt N\le 20 0<N20 ),棋盘中存在 K K K 个棋子( 0 < K ≤ M ∗ N 0\lt K\le M*N 0<KMN

输出指定棋子到达指定位置需要跳动的次数及路径(假定最多只有一条路径

如果无法到达,则输出 0 0 0 ;如果入参不合法,则输出 0 0 0

其中:棋盘使用二维数组表示, 1 1 1 表示有棋子, 0 0 0 表示无棋子

跳跳棋规则如下:

  1. 棋子可以从当前位置向其周边的 8 8 8 个方向跳动,但可以发起跳动的前提是:在发起的方向上,与当前位置紧临的位置有棋子
  2. 棋子可以横跨同一方向的多个紧临的棋子跳动
  3. 棋子可以连续跳动
  4. 棋子不能往回走(即棋子不能重复经过同一位置)

输入描述

0 0 0 行: M   N   K M\ N\ K M N K (其中 M M M 为二维数组的行数 0 < M ≤ 20 0\lt M\le 20 0<M20 N N N 为列数 0 < N ≤ 20 0\lt N\le 20 0<N20 K K K 为棋盘棋子的数量 0 < K ≤ M × N 0\lt K\le M\times N 0<KM×N , M   N   K M\ N\ K M N K以空格分隔)

1 − K 1 - K 1K 行:棋子的位置,行列以空格分隔

K + 1 K+1 K+1 行:指定棋子的起始位置,行列以空格分隔

K + 2 K+2 K+2 行:指定棋子的到达位置,行列以空格分隔

输出描述

输出指定棋子到达指定位置需要跳动的次数及路径(假定最多只有一条路径

样例

样例一:

输入

5 7 9
1 2
1 4
2 1
2 3
2 5
3 3
4 2
4 3
4 4
4 2
0 4

输出

2
2 4
0 4

样例二:

输入

6 7 9
1 2
1 4
2 1
2 3
2 5
3 3
4 2
4 3
4 4
4 4
0 3

输出

0

样例三:

输入

6 6 11
1 2
1 4
2 1
2 2
2 3
2 5
3 3
4 2
4 3
4 4
5 3
4 4
1 5

输出

3
1 1
1 3
1 5

第二题:网络最小可达跳数之和

题目内容

现有一份大小为 N × N N\times N N×N 的网络部署地图,其中每个单元格都表示 1 1 1 个地区,每个单元格都用 A   / B   / C A\ /B\ /C A /B /C 标记好了。

其中 A A A 代表此地区接入的是入公司的网络, B B B 代表此地区接入的是 B B B 公司的网络, C C C 代表超算中心。

A A A 公司网络只能通过自家的网络逐跳接入超算中心(每一跳只能上下/左/右跳动一格,且跳入的地区部署的也必须是 A A A 公司网络或者是终点 C C C 超算中心)。

请你算出所有部署 A A A 公司网络的地区到达离自己最近的超算中心 C C C 所经过的跳数的总和。

输入描述

第一行为网络部署图的阶数 N N N

第二行到第 N + 1 N+1 N+1 行为具体的网络部署图。

注意:

1 < N ≤ 1 0 2 1\lt N\le 10^2 1<N102

每个地区部署的网络一定是 A A A 或者 B B B ,或者超算中心 C C C

标记为 A A A 的单元格数量范围 [ 1 , 1 0 4 ] [1, 10^4] [1,104] ,标记为 B B B 的单元格数量范围 [ 0 , 1 0 3 ] [0, 10^3] [0,103] ,标记为 C C C 的单元格数量范围 [ 1 , 1 0 3 ] [1, 10^3] [1,103]

输出描述

所有 A A A 公司网络所在地区到达离自己最近的超算中心 C C C 所经过的跳数的总和。

特别地,如果某个 A A A 网络无法到达任一超算中心 C C C (都被 B B B 阻隔了),则这个 A A A 网络的跳数为 0 0 0

样例

样例一:

输入

3
A B C
A A A
A A C

输出

13

样例解释

每个 A A A 公司的网络到达超算中心的最小跳数如下:

4 0 0
3 2 1
2 1 0

跳数总和为 4 + 3 + 2 + 1 + 2 + 1 = 13 4+3+2+1+2+1=13 4+3+2+1+2+1=13

样例二:

输入

4
A B C C
B A B C
B B A C
A C B C

输出

2

样例解释

每个 A A A 公司的网络到达超算中心的最小跳数如下:

0 0 0 0
0 0 0 0
0 0 1 0
1 0 0 0

跳数总和为 1 + 1 = 2 1+1=2 1+1=2

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

塔子哥学算法

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

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

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

打赏作者

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

抵扣说明:

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

余额充值