#计算数组中两个数之间的最小距离
#动态规划法,记录num1和num2的最新位置,计算位置差得最小值
def minDistance(array,num1,num2):
if array==None:
return 0
location1=-1 #数字num1的最新位置
location2=-1 #数字num2的最新位置
minDis=2**32 #两个数字间的最小距离
length=len(array)
for i in range(length):
if array[i]==num1:
location1=i
if location2>=0:
minDis=min(minDis,location1-location2)
if array[i]==num2:
location2=i
if location1>=0:
minDis=min(minDis,location2-location1)
print(minDis)
if __name__ == '__main__':
array=[4,5,6,4,7,4,7,8,5,6,4,3,10,8]
num1,num2=4,8
minDistance(array,num1,num2) #结果为2
版权声明:本文为qq_38773993原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。