设计一个时间复杂度更小的算法来解决这个问题
Design an algorithm with less time complexity to solve this problem
Click to show my code
这是我想出来的,但我仍然想要一个更高效的。我使用 python 语言,但我也知道 java。重要的是高效的算法。
基于收集指数的问题。我的意思是在列表 1 中,第一个数字是 15(在索引 0 处).. 任务是在第二个列表中找到相同的数字,但打印它的索引。因此,list1 编号 15 在 list2 的索引 2 处,依此类推。
如果你不知道python或java,没关系,我只是想知道解决这个问题的高效算法。
如果所有元素在两个列表中都是唯一的并且长度相同那么你可以使用:
list1 = [15, 12, 13, 19, 14]
list2 = [19, 13, 15, 12, 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,82,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])
Click to show my code
这是我想出来的,但我仍然想要一个更高效的。我使用 python 语言,但我也知道 java。重要的是高效的算法。 基于收集指数的问题。我的意思是在列表 1 中,第一个数字是 15(在索引 0 处).. 任务是在第二个列表中找到相同的数字,但打印它的索引。因此,list1 编号 15 在 list2 的索引 2 处,依此类推。 如果你不知道python或java,没关系,我只是想知道解决这个问题的高效算法。
如果所有元素在两个列表中都是唯一的并且长度相同那么你可以使用:
list1 = [15, 12, 13, 19, 14]
list2 = [19, 13, 15, 12, 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,82,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])