ধরুন, আমাদের দুটি স্পার্স ভেক্টর আছে দুটি তালিকায়। আমাদের দুটি স্পারস ভেক্টরের ডট গুণফল ফেরত দিতে হবে। ভেক্টরগুলিকে অবজেক্ট হিসাবে উপস্থাপন করা হয়, এবং তালিকাগুলি অবজেক্টের সদস্য ভেরিয়েবল 'সংখ্যা'তে সংরক্ষণ করা হয়।
সুতরাং, যদি ইনপুটটি ভেক্টর 1 =[1, 0, 0, 0, 1], ভেক্টর2 =[0, 0, 0, 1, 1] এর মতো হয়, তাহলে আউটপুট হবে 1 ডট পণ্যটি 1 * 0 + 0 * 0 + 0 * 0 + 0 * 1 + 1 * 1 =1।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
res :=0
-
প্রতিটি সূচক i এর জন্য, ভেক্টর2 এর সংখ্যা v এর মান, করুন
-
যদি v 0 এর মত হয়, তাহলে
-
চালিয়ে যান
-
-
অন্যথায় যখন ভেক্টর1 এর সংখ্যা[i] 0 এর মত হয়, তখন
-
পরবর্তী পুনরাবৃত্তির জন্য যান
-
-
অন্যথায়,
-
res :=res + v * nums[i] of vector1
-
-
-
রিটার্ন রিটার্ন
উদাহরণ (পাইথন)
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
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