用Python找出两个稀疏向量的点积的程序
假设,我们有两个稀疏向量表示在两个列表中。我们必须返回两个稀疏向量的点积。向量表示为对象,列表存储在对象中的成员变量“nums”中。
所以,如果输入像vector1=[1,0,0,0,1],vector2=[0,0,0,1,1],那么输出就会是1点积是1*0+0*0+0*0+0*1+1*1=1。
示例(Python)
让我们看看以下实现以获得更好的理解-
class Solution: def __init__(self, nums): self.nums= nums def solve(self, vec): res = 0 for i, v in enumerate(vec.nums): if v == 0: continue elif self.nums[i] == 0: continue else: res += v * self.nums[i] return res ob1, ob2 = Solution([1, 0, 0, 0, 1]), Solution([0, 0, 0, 1, 1]) print(ob1.solve(ob2))
输入
[1, 0, 0, 0, 1], [0, 0, 0, 1, 1]输出结果
1