我有几个固定长度的数组,每个组件都可以采用自然数值。在我的程序中,2个向量在这个简单的情况下是相同的 0001112 1110002
2220001也与这两个数组相同
我的问题是如何才能获得这两个数组的唯一表示?
干杯
答案 0 :(得分:0)
如何定义等价关系并不完全清楚,但是从数组中构建集合表示会满足您给出的约束。有两种方法可以做到这一点:
答案 1 :(得分:0)
一种方法是将它们存储在字典(哈希表)中,将每个数字映射到它出现的次数。您的两个数组将具有相同的表示形式:
{0: 3, 1: 3, 2: 1}
答案 2 :(得分:0)
public static List<int> GetUniqueRepresentation(int[] array)
{
int count = 1;
var output = new List<int>();
for (int i = 1; i <= array.Length; i++)
{
if (i < array.Length && array[i] == array[i - 1])
{
count++;
}
else
{
output.Add(count);
count = 1;
}
}
return output;
}