我试着解决下面提到的这个挑战,但是我遇到了一个运行时错误。我用了Python
问题
算术数组是包含至少两个整数且连续整数之间的差异相等的数组。例如,9、10、3、3、3和9、7、5、3是算术数组,而1、3、3、7、2、1、2和1、2、4不是算术数组。
Sarasvati有一个N个非负整数数组.数组的第一个整数是Ai.她希望从最大长度的数组中选择一个连续的算术子数组。请帮助她确定最长的连续算术子数组的长度。
input :输入的第一行给出测试用例的数量,T测试用例如下。每个测试用例都以包含整数N的一行开始,第二行包含N个整数。第一个整数是Ai.
output :对于每个测试用例,输出一行包含用例#x: y,其中x是测试用例数(从1开始),y是最长的连续算术子数组的长度。
限制时间限制:每个测试集20秒。内存限制: 1GB。1≤T≤100。0≤Ai≤109.
测试集1
2≤N≤2000。
测试集2
2≤N≤2×10 5,最多检测10例。
其余病例,2≤N≤2000.
样本输入
4.
7
10 7 4 6 8 10 11
4.
9 7 5 3
9
5 5 4 5 5 5
10
5 4 3 2 1 2 3 4 5
输出
判例1:4
案例2:4
案例3:3
判例4:6
这是我的python3解决方案,它提供运行时错误
t = int(input())
for t_case in range(t):
n = int(input())
arr = list(map(int, input().split()))
x = []
for i in range(n - 1) :
x.append((arr[i] - arr[i + 1]))
ans, temp = 1, 1
j = len(x)
for i in range(1,j):
if x[i] == x[i - 1]:
temp = temp + 1
else:
ans = max(ans, temp)
temp = 1
ans = max(ans, temp)
print(f"Case #{t_case+1}: {ans+1}")
有人能帮帮我吗。
发布于 2020-08-26 05:13:21
到目前为止,Kickstart正在使用不支持f-字符串的Python 3.5 (它们是在py3.6中添加的)。尝试用str.format
替换它们。
发布于 2020-09-24 11:11:46
t=int(input())
for test in range(t):
n=int(input())
arr = list(map(int, input().split()))
x = []
for i in range(n - 1) :
x.append((arr[i] - arr[i + 1]))
ans, temp = 1, 1
j = len(x)
for i in range(1,j):
if x[i] == x[i - 1]:
temp = temp + 1
else:
ans = max(ans, temp)
temp = 1
ans = max(ans, temp)
print('Case #{0}: {1}'.format(test+1,ans+1))
https://stackoverflow.com/questions/63590822
复制相似问题