2023 荣耀笔试题 0422
笔试时间:2023年4月22日 春招实习
第一题
给定一个正整数数组,最大为100个成员,从第一个成员开始,走到数组最后一个成员最少的步骤数,第一步必须从第一元素开始,1<=步长<len/2,第二步开始以所在成员的数字走相应的步数,如果目标不可达返回-1,只输出最少的步骤数量。
输入描述
由正整数组成的数组,以空格分隔,数组长度小于100,请自行解析数据数量。
输出描述
正整数,表示最少的步数,如果不存在输出-1。
样例输入
7 5 9 4 2 6 8 3 5 4 3 9
样例输出
2
参考题解
最短路模型。直接BFS即可。
Python:
from collections import deque nums = [int(c) for c in input().split(" ")] vst = set() q = deque() for i in range(1, len(nums)//2): q.append((i, 1)) vst.add(i) def solv(): while len(q): node, w = q.popleft() if node == len(nums) - 1: return w if nums[node] + node <= len(nums) - 1 and nums[node] + node not in vst: q.append((node + nums[node], w + 1)) vst.add(node + nums[node]) return -1 print(solv())
第二题
在nxn方阵里填入1,2,.,nxn,要求填成蛇形。元素1从右上角开始,顺时针排列,例如,n=4时方阵为: 18 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 n <= 8。
输入描述
大于1不超过8的方阵的维数。
输出描述
打印填充后的方阵,每个元素占3个字符位宽。
样例输入
4
样例输出
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
矩阵元素打印占3个字符位宽。
参考题解
Python:
n = int(input()) matrix = [[0 for _ in rang
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
2023 秋招笔试题汇总解析 文章被收录于专栏
2023秋招各大笔试题汇总,c++,java,python多种语言分析,解答。