微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

设计一个时间复杂度更低的算法来解决这个问题

如何解决设计一个时间复杂度更低的算法来解决这个问题

Click to show my code

这是我想出来的,但我仍然想要一个更高效的。我使用python语言,但我也知道java。重要的是高效的算法。 基于收集指数的问题。我的意思是在列表 1 中,第一个数字是 15(在索引 0 处)。任务是在第二个列表中找到相同的数字,但打印其索引。因此,列表 1 编号 15 位于索引 2 处的列表 2。依此类推。 如果你不会python或java,没关系,我只想知道解决这个问题的高效算法。

解决方法

如果两个列表中的所有元素都是唯一的并且长度相同,则可以使用:

list1 = [15,12,13,19,14] 
list2 = [19,15,14]

for index,i in enumerate(list1):
    print(f'A[{index}] with B[{list2.index(i)}]')

输出:

A[0] with B[2]
A[1] with B[3]
A[2] with B[1]
A[3] with B[0]
A[4] with B[4]
,

您做得很好,但是如果您只想知道两个列表中值的指定位置,您可以使用 sort() 方法来匹配两个位置并知道每个索引处的值。 代码在这里..

list1 = [63,3,82,45,1]
list2 = [3,63,1,45]
list1.sort()
list2.sort()
for I in range(len(list1)):
    print('Position at index',I,'in both the lists is',list1[I])

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。