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