笔试—华为软件开发笔试-4
题目1:跳跳棋
已知存在一个跳跳棋的棋盘(行数0<M<=20,列数0<N<=20),棋盘中存在K个棋子(0<K<=M *N),输出指定棋子到达指定位西需型跳动的次数及路径(假定最多只有一条路径);如果无法到达,则输出0;如果入参不合法,则物出0;
其中:棋盘使用二维数组去表示,1表示有棋子,0表示无棋子
跳跳棋其规则如下:
1.棋子可以从当前位置向其周边的8个方向跳动,但可以发起跳动的前提是:在发起的方向上,与当前位置紧临的位置有棋子;
2.棋子可以横跨同一方向的多个紧临的棋子跳动
3.棋子可以连续跳动
4.棋子不能往回走(即棋子不能重复经过同一位置)
输入
第0行: M N K(其中M为二维数组的行数0<M<=20, N为列数0<N<=20, K为棋盘棋子的数量O<K<=M*N,M N K以空格分隔)
第1~K行:棋子的位置,行列以空格分隔
第K+1行:指定棋子的起始位置,行列以空格分隔
第K+2行:指定棋子的到达位置,行列以空格分隔
输出
第0行:跳动的次数。如果无法到达,则的出0;
第1-N行:跳动路径上的棋子落下的所有位置(不包含起点,包含终点),按落下的顺序输出位置的行与列,以空格分隔;如果无法到达,则无输出
样例1
输入:
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
样例2:
输入:
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
样例3
输入:
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
题目2:网络最小可达跳数之和
现有一份大小为N*N的网络部署地图,其中每个单元格都表示1个地区,每个单元格都用A/B/C标记好了。中A代表此地区按入的是A公司的网BBC.
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
本专栏主要是介绍嵌入式软件开发岗位的相关知识和学习攻略,为大家提供一份笔试与面试手册。包括有嵌入式软件开发岗位介绍与学习攻略;校园招聘和offer疑惑问题的介绍;在笔试方面,如何刷题为笔试作准备,提供往年笔试真题;在面试方面,提供相关知识的复习重点,提供面试真题。包括有:华为、蔚来、文远、大疆、三一、深信服、亚马逊、Intel、百度、科大讯飞、OPPO、京东、中兴、比特大陆|算能、美团等等