मान लीजिए, हमारे पास दो विरल वेक्टर हैं जो दो सूचियों में दर्शाए गए हैं। हमें दोनों विरल वेक्टर का डॉट प्रोडक्ट वापस करना है। वेक्टर ऑब्जेक्ट्स के रूप में दर्शाए गए हैं, और सूचियाँ ऑब्जेक्ट्स में '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।
हल करने के चरण
- res := 0
- vector2 के nums में प्रत्येक इंडेक्स i, वैल्यू v के लिए:
- यदि v, 0 के समान है, तो जारी रखें
- अन्यथा जब vector1 का nums[i], 0 के समान है, तो अगले इटरेशन पर जाएं
- अन्यथा, res := res + v * vector1 का nums[i]
- res वापस करें
उदाहरण (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