python - 为什么我在这 2 个代码上的 Codeforces 平台上出现运行时错误?
问题描述
这是我的提交链接:-针对以下问题:https ://codeforces.com/problemset/problem/1257/C https://codeforces.com/problemset/submission/1257/65506141
test=int(input())
for testing in range(test):
n=int(input())
t=[int(x) for x in input().split()]
if n<=1:
print(-1)
else :
l=[x for x in t if t.count(x)>1]
l=[x for x in set(l)]
pointer=[]
for x in l:
joker=True
i=0
while i<len(t):
if t[i]==x and joker:
s=i
joker=False
if t[i]==x and not joker and i!=s:
pointer.append(t[s:i+1])
joker=True
i-=1
i+=1
print(min(map(len,pointer)))
在此先感谢^^,我仍然没有从运行时错误中得到什么
解决方案
我发现了它的主要原因,这主要是因为尝试或期望您需要避免异常,例如列表变空并在此之后为其他事情调用它。我刚刚修复了代码:
test=int(input())
for testing in range(test):
n=int(input())
t=[int(x) for x in input().split()]
if n<=1 :
print(-1)
continue
else :
pointer=[[False,0] for i in range(max(max(t),len(t))+1)]
first=True
mini=-1
for i in range(len(t)):
if not pointer[t[i]][0]:
pointer[t[i]][1]=i
pointer[t[i]][0]=True
continue
if pointer[t[i]][0]:
if first :
mini=i-pointer[t[i]][1]+1
first=False
else:
a=i-pointer[t[i]][1]+1
if mini>a:
mini=a
pointer[t[i]][1]=i
pointer[t[i]][0]=True
if mini==2:
break
print(mini)
推荐阅读
- c++ - fork 和 execve 应用程序中的一些按顺序使用 condition_variable 和其他同时
- c# - 如何修复您的登录 asp.net mvc 以加载页面?
- android - RecyclerView 点击监听最佳实践且无内存泄漏
- python - 如何让matplotlib在没有font_manager的情况下显示外语
- sql - 在请求 oracle 中按日期选择(之间)
- javascript - 如果在 Vaadin 14 中调用 NPM 包的函数,则参考错误
- laravel - cookie 和 html 中的 CSRF 令牌不匹配
- flutter - 在颤动中转换部分可点击的文本
- java - 如何使用流从双精度数组中过滤掉非整数值?
- php - Yii2 未知方法 getHeaders