Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Kickstart Round C 2020倒计时问题-查找连续子阵列的数量_Python_Arrays - Fatal编程技术网

Python Kickstart Round C 2020倒计时问题-查找连续子阵列的数量

Python Kickstart Round C 2020倒计时问题-查找连续子阵列的数量,python,arrays,Python,Arrays,编辑-输出在冒号前没有空格。但在改变了这一点之后,不是错误的答案,而是运行时错误。甚至示例输入测试也成功运行。可能有什么问题 问题 Avery有一个N个正整数的数组。数组的第i个整数是Ai 如果一个连续子数组的长度为m,并且包含按该顺序排列的整数m,m-1,m-2,…,2,1,则它是一个m倒计时。例如,[3,2,1]是一个3-倒计时 你能帮艾弗里数一数她数组中的K倒数吗 输入 输入的第一行给出了测试用例的数量,然后是T.T测试用例。每个测试用例从一行开始,该行包含整数N和K。第二行包含N个整数。

编辑-输出在冒号前没有空格。但在改变了这一点之后,不是错误的答案,而是运行时错误。甚至示例输入测试也成功运行。可能有什么问题

问题 Avery有一个N个正整数的数组。数组的第i个整数是Ai

如果一个连续子数组的长度为m,并且包含按该顺序排列的整数m,m-1,m-2,…,2,1,则它是一个m倒计时。例如,[3,2,1]是一个3-倒计时

你能帮艾弗里数一数她数组中的K倒数吗

输入 输入的第一行给出了测试用例的数量,然后是T.T测试用例。每个测试用例从一行开始,该行包含整数N和K。第二行包含N个整数。第i个整数是Ai

输出 对于每个测试用例,输出包含用例x:y的一行,其中x是从1开始的测试用例编号,y是数组中的K-倒计时数

极限 时间限制:每个测试集20秒。 内存限制:1GB。 1.≤ T≤ 100 2.≤ K≤ N 1.≤ 艾岛≤ 2×105,适用于所有i

测试集1 2.≤ N≤ 一千

测试集2 2.≤ N≤ 2×105,最多10个测试用例。 其余个案则有2宗≤ N≤ 一千

样品

输入

三, 12 3 1 2 3 7 9 3 2 1 8 3 2 1 4 2 101 100 99 98 9 6 100765432100

输出

案例1:2 案例2:0 案例3:1

T = int(input())

res = []
for i in range(T):
    N, K = map(int, input().split(' '))
    ai = list(map(int, input().split(' ')))
    y=0
    count=0
    for m in range(len(ai)):
        count=0
        if(ai[m]==K):
            if(len(ai)>=m+K-1):
                    for j in reversed(range(1, K)):
                        if(ai[m+K-j]==j):
                            count=count+1
                    if(count==K-1):
                        y=y+1
            else:
                break
        else:
            continue
    res.append("Case #"+str(i+1)+" : "+str(y))
for g in range(len(res)):
    print(res[g])

您可以使用两个指针的方法,比如取两个变量i和j,并用0初始化它们

如果满足所需条件,则保持i固定增量j,即

while(a[k+1]-a[k]==1):
    j++
    k++
当条件失效时,计算j-i。如果j-i==m,则增加计数器,说cnt,然后输入i=j并重复,直到数组结束

请提供预期值。显示中间结果与预期结果的偏差。我们应该能够将单个代码块粘贴到文件中,运行它,并重现您的问题。您发布的代码挂起,等待输入。错误的答案不是问题。您试图追踪问题的尝试没有出现在本帖中,在GoogleKickstart上,它没有显示哪个测试用例失败。因此,即使是我也不知道中间结果偏离了哪里。