মান লজিয়ে, আমাদের দুটি স্পার্স ভেক্টর দুইটি লিস্টে রিপ্রেজেন্ট করা আছে। আমাদের দুটি স্পার্স ভেক্টরের ডট প্রোডাক্ট রিটার্ন করতে হবে। ভেক্টরগুলো অবজেক্ট হিসেবে রিপ্রেজেন্ট করা আছে, এবং লিস্টগুলো অবজেক্টের '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, তবে continue
- অন্যথায় যদি vector1-এর nums[i] == 0, তবে continue
- অন্যথায়: 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