问题是从给定列表中查找不包含大于指定上限数字的子列表总数right
并且子列表的最大数量应该大于下限left
假设我的清单是:x=[2, 0, 11, 3, 0]
子列表元素的上限是10
下界是1
那么我的子列表可以是[[2],[2,0],[3],[3,0]]
因为子列表始终是连续的。我的脚本运行良好并产生正确的输出,但需要一些优化
def query(sliced,left,right):
end_index=0
count=0
leng=len(sliced)
for i in range(leng):
stack=[]
end_index=i
while(end_index<leng and sliced[end_index]<=right):
stack.append(sliced[end_index])
if max(stack)>=left:
count+=1
end_index+=1
print (count)
origin=[2,0,11,3,0]
left=1
right=10
query(origin,left,right)
output:4
对于一个列表说x=[2,0,0,1,11,14,3,5]
有效的子列表可以是[[2],[2,0],[2,0,0],[2,0,0,1],[0,0,1],[0,1],[1],[3],[5],[3,5]]
总数为 10