📅  最后修改于: 2023-12-03 15:11:27.157000             🧑  作者: Mango
这个问题可以通过遍历数组并记录下每个数字最后出现的索引以及最大差来解决。
last_indices
,键为数字,值为最后出现的索引。代码片段如下:
def find_max_difference(nums):
last_indices = {}
max_difference = 0
for i, num in enumerate(nums):
last_indices[num] = i
for i, num in enumerate(nums):
distance = i - last_indices[num]
max_difference = max(max_difference, distance)
return max_difference
该函数接收一个整数列表 nums
,并返回最大差。以下是测试用例:
assert find_max_difference([1, 2, 3, 4, 5]) == 4
assert find_max_difference([5, 4, 3, 2, 1]) == 4
assert find_max_difference([1, 3, 5, 2, 4]) == 3
以上是一个简单的解决方案,时间复杂度为 O(n),空间复杂度为 O(n)。如果需要更高效的解决方案,可以考虑使用双指针或二分查找等方法。