【问题标题】:Google Kickstart Round E 2020 Longest Arithmetic Runtime ErrorGoogle Kickstart Round E 2020 最长算术运行时错误
【发布时间】:2020-08-26 05:06:06
【问题描述】:

我尝试解决下面提到的这个挑战,但出现运行时错误。我用的是 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,最多 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 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}")

谁能帮帮我。

【问题讨论】:

  • 你能用 numpy 吗?
  • 我不认为我们必须使用内置模块

标签: python list sublist


【解决方案1】:

截至目前,Kickstart 正在使用不支持 f 字符串的 Python 3.5(它们是在 py3.6 中添加的)。尝试将它们替换为str.format。

【讨论】:

    【解决方案2】:
    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))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多