我有以下输入:
- 公差水平 T
- 数字数量 N
- N个数字
任务是在这 N 个数字中找到最长的周期,使它们在容差范围内。更准确地说,给定子字符串的左右边界l
和r
两个不同的元素a1
,并且a2
在这两个边界之间,它必须保持|a1 - a1| <= T
. 我怎样才能有效地做到这一点?我的做法是:
def getLength(T, N, numbers):
max_length = 1
for i in range(0, N-1):
start = numbers[i]
numlist = [start]
for j in range(i+1, N):
end = numbers[j]
numlist.append(end)
if (max(numlist) - min(numlist)) > T:
break
if (j-i+1) > max_length:
max_length = j-i+1
return max_length
编辑:说清楚。该代码按预期工作。但是,它的效率不够高。我想更有效地做到这一点。