Facebook interview - Dot Product of Sparse Vector

What is a memory-efficient way to store a vector of integers? Follow-up question: using your proposed data structure, find an algorithm with constant memory usage to calculate the dot product of two vectors.

 

有两个很大的稀疏向量,问怎么存储和算他们的dot product. 只存储非零元素和他的index
,如果压缩后的向量大小为m,n, O(m+n)和O(mlogn)方法都不难想到。他问有没有更好
,提示divide and conquer,我就说先取一个向量的中间元素,然后搜索他在另一个向
量中对应元素的位置,这样就把两个矩阵都分别分为两半。他问复杂度,我说我要算一
下才知道,然后他说他也不知道,不过平均情况应该比前面的好。

 

你可能感兴趣的:(interview)