本文最后更新于 568 天前,其中的信息可能已经有所发展或是发生改变。
文章目录[隐藏]
第1关:查找缺失元素
任务描述
本关任务:给定一个由n-1个整数组成的未排序的序列,其元素都是1到n中的不同的整数。请写出一个寻找列表中缺失整数的算法。
相关知识
为了完成本关任务,你需要掌握:1.如何遍历列表
编程要求
根据提示,在右侧编辑器补充代码。
测试说明
平台会对你编写的代码进行测试:
测试输入:; 预期输出: 6
def decision(aList):
tot = []
for i in range(len(aList)+1):
tot.insert(0,0)
for i in range(len(aList)):
tot[aList[i]] = tot[aList[i]] + 1
for i in range(len(tot)):
if tot[i] == 0 and i != 0:
return i
return -1
if __name__ == '__main__':
ls=[1,4,3,2,7,5]
print(decision(ls))
还有高手
for i in aList:
y+=i
print((1+n)/2*n-y)
第2关:循环右移
任务描述
本关任务:把一个含有N个元素的数组循环右移k位。 例如,原列表为 a,b,c,d,1,2,3,4,具体移动过程为: abcd1234-> 4abcd123 ->34abcd12 -> 234abcd1 -> 1234abcd
相关知识
为了完成本关任务,你需要掌握:1.如何移动列表中的元素
编程要求
根据提示,在右侧编辑器补充代码 。
测试说明
平台会对你编写的代码进行测试:
测试输入:4
; 预期输出: [5,6,7,8,1,2,3,4]
测试输入:1
; 预期输出: [8, 1, 2, 3,4,5,6,7]
def right_shif_once(ls):
tmp = ls[len(ls)-1]
for i in range(len(ls)-1,0,-1):
ls[i] = ls[i-1]
ls[0] = tmp
def right_shift(ls,k):
for i in range(k):
right_shif_once(ls)
if __name__ == '__main__':
k = int(input())
ls=[1,2,3,4,5,6,7,8]
right_shift(ls,k)
print(ls)
第3关:在二维列表中查找
任务描述
本关任务:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。实现一个函数,接收两个参数,分别是二维数组和一个整数,判断数组中是否含有该整数。 例如,二维数组如下 1 2 8 9 2 4 9 12 4 7 10 13 6 8 11 15 如果在这个数组中查找数字5,返回False;如果在这个数组中查找数字7,返回True.
相关知识
为了完成本关任务,你需要掌握:1.如何遍历列表的列表。
编程要求
根据提示,在右侧编辑器补充代码。
测试说明
平台会对你编写的代码进行测试:
测试输入:5
; 预期输出: False
测试输入:7
; 预期输出: True
def find(matrix,x):
for i in matrix:
if x in i:
return True
return False
if __name__ == '__main__':
x = eval(input())
matrix=[[1,2,8,9],
[2,4,9,12],
[4,7,10,13],
[6,8,11,15]]
print(find(matrix,x))