a
给定一个长度数组N
,它是一个整数列表,我想提取重复值,其中我有一个包含重复位置的每个值的单独列表。在伪数学中:
If |M| > 1:
val -> M = { i | a[i] == val }
示例 ( N=11
):
a = [0, 3, 1, 6, 8, 1, 3, 3, 2, 10, 10]
应该给出以下列表:
3 -> [1, 6, 7]
1 -> [2, 5]
10 -> [9, 10]
我添加了python
标签,因为我目前正在使用该语言进行编程(numpy 和 scipy 可用),但我对如何做到这一点的一般算法更感兴趣。不过,代码示例很好。
一个想法,我还没有充实:构造一个元组列表,将每个条目a
与其索引配对:(i, a[i])
。以第二个条目为键对列表进行排序,然后检查第二个条目相同的连续条目。