【发布时间】:2016-09-02 13:21:41
【问题描述】:
我正在尝试编写一个算法,在给定 n 对数字的情况下找到两个数字之间的最大距离。
这是我目前所拥有的。
Wire ints 是我的示例数字,第一对是 1,10,第二对是 1,10,第三对是 7,7。
wire_ints = [10, 1, 1, 10, 7, 7]
longest_cases = {}
largest_length = 0
q = 0
y = 0
leftcounter = 0
rightcounter = 1
while q < len(wire_ints):
left_port = wire_ints[leftcounter]
right_port = wire_ints[rightcounter]
length_wire = left_port - right_port
wire_length = abs(length_wire)
leftcounter = leftcounter + 2
rightcounter = rightcounter + 2
q = q + 2
y = y + 1
if not longest_cases:
largest_length = wire_length
longest_cases[wire_length] = y
elif wire_length == largest_length:
longest_cases[wire_length] = y
elif wire_length > largest_length:
largest_length = wire_length
longest_cases.clear()
longest_cases[wire_length] = y
print(longest_cases)
这当前输出{9:2},并没有错。 9 是这些数字对之间的最大距离。但是,我希望它打印{9:1, 9:2}。
字典中的key指的是最大长度,value指的是原始数组中pair的个数。前 2 个整数是第 1 对,然后是第二对 2,依此类推。
所以,由于数组有两个长度相同的对,它应该在字典中输出两个对。
我想不通。 救命!
【问题讨论】:
-
一旦您得到答案,请不要破坏您的问题。
标签: python