首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在随机列表中找到两个数字之间的最短距离,而不对列表进行排序。我的代码如下所示,我需要另一种快速方法

在给出另一种快速方法之前,让我们先理解一下问题的要求。你想要在一个随机列表中找到两个数字之间的最短距离,同时又不对列表进行排序。下面是一个快速的解决方案:

代码语言:txt
复制
def find_shortest_distance(nums, num1, num2):
    min_distance = float('inf')
    last_index = None

    for i, num in enumerate(nums):
        if num == num1 or num == num2:
            if last_index is not None and nums[last_index] != num:
                min_distance = min(min_distance, i - last_index)
            last_index = i

    return min_distance

这个解决方案的思路是遍历列表,同时记录上一次出现的目标数字的索引。当遇到目标数字时,我们检查上一次出现的目标数字是否与当前数字不同,如果是,则计算当前索引与上一次索引之间的距离,并更新最短距离。最后返回最短距离。

这种方法的时间复杂度是O(n),其中n是列表的长度。它不需要对列表进行排序,因此在处理大型列表时效率较高。

希望这个解决方案能满足你的需求。如果你有任何其他问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券