我很难理解这个问题。你知道吗
假设我有n个列表,每个列表包含n个元素。 对于每个列表,我需要找到最小值的索引并将它们存储在新列表中。这很简单。你知道吗
问题是,索引列表中的两个或多个值可能相等。我需要一个具有唯一值的列表。如果两个(或更多)值相等,我想对来自smalles最小值的索引值进行优先级排序。你知道吗
示例:
myLists = []
myLists.append([113.6, 12262.6, 21466.7, 141419.9]) # list 1
myLists.append([122284.8, 111161.8, 106581.1, 141419.9]) # list 2
myLists.append([25427.9, 13694.0, 5148.9, 141419.9]) # list 3
myLists.append([21354.9, 10599.2, 0.1, 141419.9]) # list 4
这将给出索引列表[0,2,2,2]。基于列表2、3和4中的第二个值,我看到最小的值在列表4中,所以我的索引列表应该像[0,?,?,2]. 你知道吗
更进一步,我需要用值1和3来填充问号,但是哪个去哪了?通过检查,我看到由于13694.0(列表3中的索引1)小于111161.8(列表2中的索引1),并且每个列表中的第三个索引值相等,所以我应该选择列表3中的索引1。你知道吗
这意味着我的新索引列表是[0,?,1,2]. 只剩下一个问号,我就用3个填了这个。这就得到了[0,3,1,2]。你知道吗
列表通常很小,所以运行时间在这里并不是一个真正的问题。你知道吗
我以3个元组的形式合并了所有列表(value,mylist中的list索引,list中的value索引),并按value排序。我的代码的时间复杂度是nlog(n)。你知道吗
输出-
相关问题 更多 >
编程相关推荐