สมมติว่า เรามีเวกเตอร์กระจัดกระจายสองรายการ แสดงในสองรายการ เราต้องคืนค่าดอทโปรดัคของเวกเตอร์กระจัดกระจายสองตัว เวกเตอร์จะแสดงเป็นวัตถุ และรายการจะถูกเก็บไว้ในตัวแปรสมาชิก '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
-
สำหรับแต่ละดัชนี i ค่า v ใน nums ของ vector2 ทำ
-
ถ้า v เท่ากับ 0 แล้ว
-
ต่อ
-
-
มิฉะนั้น เมื่อ nums[i] ของ vector1 เท่ากับ 0 แล้ว
-
ไปทำซ้ำต่อไป
-
-
มิฉะนั้น
-
res :=res + v * nums[i] ของ vector1
-
-
-
ผลตอบแทน
ตัวอย่าง (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