以下代码传递除案例#4之外的所有测试用例,后者会收到运行时错误。有人可以指出问题吗?
def circularArrayRotation(a, k, queries):
if k < len(a):
k = k
elif k == len(a):
k = 0
else:
k = k%a
newList = []
for val in queries:
newInd = -k+val
if abs(newInd) > len(a):
newInd = newInd - (len(a)-1)
newList += [a[newInd]]
else:
newList += [a[newInd]]
return newList
可以做的是立即采取旋转的数组。然后在旋转的数组上运行qureies。将结果保存在列表中并将其返回。
def circularArrayRotation(a, k, queries):
new_arr = a[-k%len(a):] + a[:-k%len(a)]
# list slicing is done here. it will get the right rotated array
result = []
for i in queries:
result.append(new_arr[i])
# running queries on rotated array
return result








暂无数据