问题
1.做过的项目遇到过哪些挑战,怎么解决的?
2.介绍下Transform的token推理过程
3.对vllm的pagedAttention的理解
题目要求
给定两个整形数N,M,要求形成一个N * M的矩阵。矩阵中的每一项存放的数从1到N * M,以蛇形迂回的顺序存放。最后按行按列依次输出数组中的元素。
例如 3 * 3 的数组存放情况如下:
1 2 3
8 9 4
7 6 5
例如 5 * 5数组存放情况如下:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
python
def bulid_matrix(n,m):
matrix =[]
for i in range(n):
matrix.append([0]*m)
top =0
bottom =n-1
left =0
right=m-1
num=1
while num<=n*m:
# top raw left --right
for j in range(left,right+1):
if num>n*m:
break
matrix[top][j]=num
num+=1
top+=1
# right column top--bottom
for i in range(top,bottom+1):
if num>n*m:
break
matrix[i][right]=num
num+=1
right-=1
# bottom row right --left
for j in range(right,left-1,-1):
if num>n*m:
break
matrix[bottom][j]=num
num+=1
bottom-=1
# left colum bottom --top
for i in range(bottom,top-1,-1):
if num>n*m:
break
matrix[i][left]=num
num+=1
left+=1
return matrix
#
def main():
n,m=map(int,input().split())
matrix=bulid_matrix(n,m)
for row in matrix:
print(' '.join(map(str,row)))
if __name__=='__main__':
main()
commod
5 5
1 2 3 4 5
16 0 0 0 6
15 0 0 0 7
14 0 0 0 8
13 12 11 10 9
Process finished with exit code 0