Google Kickstart E 轮 2020 最长算术运行时错误
Google Kickstart Round E 2020 Longest Arithmetic Runtime Error
我尝试解决下面提到的这个挑战,但我遇到了 运行 时间错误。我用了 Python
问题
算术数组是至少包含两个整数且连续整数之差相等的数组。例如,[9, 10], [3, 3, 3], [9, 7, 5, 3] 是算术数组,而 [1, 3, 3, 7], [2, 1, 2], [1, 2, 4] 不是算术数组。
Sarasvati 有一个包含 N 个非负整数的数组。数组的第 i 个整数是 Ai。她想从她的数组中选择一个具有最大长度的连续算术子数组。请帮助她确定最长的连续算术子数组的长度。
输入:
输入的第一行给出了测试用例的数量,T。接下来是 T 个测试用例。每个测试用例都以包含整数 N 的行开始。第二行包含 N 个整数。第i个整数是Ai.
输出:
对于每个测试用例,输出包含 Case #x: y 的一行,其中 x 是测试用例编号(从 1 开始),y 是最长连续算术子数组的长度。
限制
时间限制:每个测试集 20 秒。
内存限制:1GB。
1≤T≤100。
0 ≤ Ai ≤ 109.
测试集 1
2 ≤ N ≤ 2000.
测试集 2
2 ≤ N ≤ 2 × 105 for at most 10 test cases.
其余情况,2≤N≤2000。
示例输入
4
7
10 7 4 6 8 10 11
4
9 7 5 3
9
5 5 4 5 5 5 4 5 6
10
5 4 3 2 1 2 3 4 5 6
输出
案例 #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}")
谁能帮帮我。
截至目前,Kickstart 使用的 Python 3.5 不支持 f-strings(它们是在 py3.6 中添加的)。尝试将它们替换为 str.format
.
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))
我尝试解决下面提到的这个挑战,但我遇到了 运行 时间错误。我用了 Python
问题
算术数组是至少包含两个整数且连续整数之差相等的数组。例如,[9, 10], [3, 3, 3], [9, 7, 5, 3] 是算术数组,而 [1, 3, 3, 7], [2, 1, 2], [1, 2, 4] 不是算术数组。
Sarasvati 有一个包含 N 个非负整数的数组。数组的第 i 个整数是 Ai。她想从她的数组中选择一个具有最大长度的连续算术子数组。请帮助她确定最长的连续算术子数组的长度。
输入: 输入的第一行给出了测试用例的数量,T。接下来是 T 个测试用例。每个测试用例都以包含整数 N 的行开始。第二行包含 N 个整数。第i个整数是Ai.
输出: 对于每个测试用例,输出包含 Case #x: y 的一行,其中 x 是测试用例编号(从 1 开始),y 是最长连续算术子数组的长度。
限制 时间限制:每个测试集 20 秒。 内存限制:1GB。 1≤T≤100。 0 ≤ Ai ≤ 109.
测试集 1
2 ≤ N ≤ 2000.
测试集 2
2 ≤ N ≤ 2 × 105 for at most 10 test cases.
其余情况,2≤N≤2000。
示例输入
4
7
10 7 4 6 8 10 11
4
9 7 5 3
9
5 5 4 5 5 5 4 5 6
10
5 4 3 2 1 2 3 4 5 6
输出
案例 #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}")
谁能帮帮我。
截至目前,Kickstart 使用的 Python 3.5 不支持 f-strings(它们是在 py3.6 中添加的)。尝试将它们替换为 str.format
.
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))