高效存储面试问题的矩阵



我有几次面试,其中一些都失败了。实际上,有三家不同的公司提出了一个问题。不完全相同,但它们具有共同的结构。

问题是:现在你有一个 0 或 1 的矩阵(或用"1"表示的有用用户配置文件,用"0"表示的非有用用户配置文件//或值为 1 和 0 的图像)。现在,您需要有效地将图像存储到系统中。你应该使用什么方法?

在我看来,他们

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

想法呢?

谢谢。!

这取决于"高效"的含义。

空间和效率之间的一个不错的折衷是选择略大于问题数量的本机数据类型。

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

如果你将这些存储在数组(short[])中,你可以通过它的id快速找到项目/人,用作数组中的位置,然后通过使用按位运算(在这种情况下,位移1到存储感兴趣项目的位置,然后使用按位运算&(和)来获取这个特定的位。如果生成的短!= 0您就知道该位已设置。

相关内容

  • 没有找到相关文章

最新更新