Adobe访谈:用于存储数千个点(x,y)以更快地执行某些操作的数据结构

use*_*404 7 data-structures

我们必须在这里存储数千个点(x,y,c)c用于该点的颜色.主要是它与屏幕上的像素有关.我们必须执行操作:给定x = i,我们必须改变具有x = i的所有点的颜色.类似地,假设y = i,我们必须改变具有y = i的所有点的颜色.

我提出了二维矩阵的解决方案.然后为x和y坐标分隔哈希表.然后他问我更好的解决方案.我们可以使用哪些更好的数据结构组合?

Cor*_*y G 1

您不需要二维数组和单独的哈希表。如果您的数据很密集,代表整个(或大部分)矩形区域,那么 2D 数组本身就足够了。作为后续,您可以询问哪个坐标最有可能用于查找,然后构造数组以确保外部坐标是该坐标,以便该坐标中的查找本地化在内存中,但否则您无法做得更好。相反,对于稀疏数据,哈希表是最好的选择。(我假设您正在将坐标散列为点对象数组。)是否提供了有关数据性质或最有可能如何使用数据的更多信息?