C++ 子矩阵中元素在给定范围内的唯一元素数?

C++ 子矩阵中元素在给定范围内的唯一元素数?,c++,arrays,matrix,C++,Arrays,Matrix,我已经想到了以下几点,但它需要大量的内存 因为我需要在任何子矩阵中找到唯一的元素,并且元素的范围在1-10之间,所以我为每个矩阵成员创建了一个大小为10的数组,该数组将每个元素的出现次数存储到该矩阵成员(从左起)在该特定行中的出现次数 e、 g 如果行1,2,2,4,3,5 然后,arr[3][10]={1,2,0,1,0,0,0,0}//对于第三个元素“4”,“1”出现一次,“2”出现两次,“4”出现一次。 和arr[5][10]={1,2,1,1,0,0,0,0}//最后一个元素“5” 因此

我已经想到了以下几点,但它需要大量的内存

因为我需要在任何子矩阵中找到唯一的元素,并且元素的范围在1-10之间,所以我为每个矩阵成员创建了一个大小为10的数组,该数组将每个元素的出现次数存储到该矩阵成员(从左起)在该特定行中的出现次数

e、 g

如果行
1,2,2,4,3,5

然后,
arr[3][10]={1,2,0,1,0,0,0,0}//对于第三个元素“4”,“1”出现一次,“2”出现两次,“4”出现一次。

arr[5][10]={1,2,1,1,0,0,0,0}//最后一个元素“5”

因此,我可以通过遍历两个数组中的每一个来找出任意两个成员之间唯一元素的数量,并查看哪些数组成员是不同的

我可以将子矩阵每行中的所有唯一元素推到
集合中
,并找到唯一元素的数量


但是,如果矩阵大小增加,此方法需要大量内存。有没有更好的方法来解决这个问题?

很抱歉,这样的问题会导致禁令

您向活动编程竞赛寻求问题的解决方案:


你的方法是正确的。继续,你会得到AC。我实现了你在问题中写的东西,我得到了AC。使用大小为[300][300][10]的三维矩阵,完全按照你的建议去做。内存要求不会太高