Matrix 面试问题矩阵的高效存储

Matrix 面试问题矩阵的高效存储,matrix,storage,Matrix,Storage,我参加了几次面试,有些面试不及格。 有一个问题实际上是由三家不同的公司提出的。不完全相同,但它们有共同的结构 问题是:现在有了一个0或1的矩阵(或者有用的用户配置文件用“1”表示,而无用的用户配置文件用“0”//表示,或者图像用1和0表示)。现在,您需要将图像高效地存储到系统中。你应该用什么方法 在我看来,他们希望我提出有效的解决方案,所以我告诉他们一起使用0、1和“值”。 例如00000011100011111 可存储为06 13 03 15 我知道在多媒体或信息技术中也有类似的编码方法。 但

我参加了几次面试,有些面试不及格。 有一个问题实际上是由三家不同的公司提出的。不完全相同,但它们有共同的结构

问题是:现在有了一个0或1的矩阵(或者有用的用户配置文件用“1”表示,而无用的用户配置文件用“0”//表示,或者图像用1和0表示)。现在,您需要将图像高效地存储到系统中。你应该用什么方法

在我看来,他们希望我提出有效的解决方案,所以我告诉他们一起使用0、1和“值”。 例如00000011100011111 可存储为06 13 03 15 我知道在多媒体或信息技术中也有类似的编码方法。 但我认为这不是他们想要的

你有什么想法


谢谢

这取决于“高效”的含义

在空间和效率之间的一个不错的折衷办法是选择一个比问题数量稍大的本机数据类型

也就是说,如果您想为每个项目/人存储10个不同的二进制值,请使用
short
(或者这就是16位数据类型在java中的名称)

如果将它们存储在一个数组中(
short[]
),您可以通过它的id(用作数组中的一个位置),然后通过使用(在这种情况下,将
1
位移到存储感兴趣项的位置,然后使用位操作
)快速找到该项/人(和)如果得到的short
!=0
您知道该位已设置