Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 什么是(for循环中的list.index())复杂性_Python_List_Algorithm_Data Structures_Time Complexity - Fatal编程技术网

Python 什么是(for循环中的list.index())复杂性

Python 什么是(for循环中的list.index())复杂性,python,list,algorithm,data-structures,time-complexity,Python,List,Algorithm,Data Structures,Time Complexity,对于(第一个列表)中的每个数字: 第二个列表。索引(编号)->变量 打印(第一个列表中的数字索引)和(变量)当前方法中存在的问题是,使放置一个元素依赖于整个相反的列表。相反,只需制作一张图表,说明每个元素在每个列表中的位置 使用dict检查列表1,填写key:value作为元素及其索引。这给你 { 5: 0, 8: 1, 1: 2, 4: 3 } 现在,看一下清单2。访问每个元素;如果存在(使用故障保护功能的get),则打印存储的索引(列表1)和当前索引(列表2)。如果不存在,只需跳过打印即可

对于(第一个列表)中的每个数字: 第二个列表。索引(编号)->变量
打印(第一个列表中的数字索引)和(变量)

当前方法中存在的问题是,使放置一个元素依赖于整个相反的列表。相反,只需制作一张图表,说明每个元素在每个列表中的位置

使用dict检查列表1,填写key:value作为元素及其索引。这给你

{ 5: 0, 8: 1, 1: 2, 4: 3 }
现在,看一下清单2。访问每个元素;如果存在(使用故障保护功能的
get
),则打印存储的索引(列表1)和当前索引(列表2)。如果不存在,只需跳过打印即可


O(N)复杂性。

您可以使用映射数据结构将时间复杂性降低到O(N)

步骤1:遍历列表一并将列表一的所有值的索引存储在地图中。
对于eg;列表1={5,8,1,4}
您的地图将看起来像
5->0
8->1
1->2
4->3

步骤2:在列表1中存储值后,遍历列表2并检查元素是否存在于地图中,如果存在,则打印其索引,否则跳过该元素
对于eg List2={1,5,4,8}
输出:
val=1,2->0
val=5,0->1
val=4,3->2
val=8,1->3

注意:只有当两个列表中的元素是不同的时,实现才会起作用。否则,特定值将有多个索引

如果你使用C++,那么我建议你在OO(1)中使用unOrdEdjPad。< /P> 此实现的时间复杂性将是
O(list1.size()+list2.size())
如果代码是这样的,那么空间复杂度将是O(list1.size())

对于在第一个中搜索的:#O(n)
i=第二个索引(已搜索)#O(m)
印刷品(一)
然后答案是
O(n*m)
,其中
n=len(第一)
m=len(第二)


如果你使用字典,它可以在
O(n+m)
中完成。

你能提供一些示例输入和输出吗?我很难理解这个问题。人们在这么短的时间内问同样的问题,这很可疑: