สมมติว่าเรามีสองรายการ L1 และ L2 เราต้องหาความแตกต่างที่น้อยที่สุดระหว่างตัวเลขจาก L1 และตัวเลขจาก L2
ดังนั้น หากอินพุตเป็นเหมือน L1 =[2, 7, 4], L2 =[16, 10, 11] ผลลัพธ์จะเป็น 3 เนื่องจากความแตกต่างที่น้อยที่สุดคือ 10 - 7 =3
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- เรียงลำดับรายการ L1 และเรียงลำดับรายการ L2
- ตอบ :=อินฟินิตี้
- i :=0, j :=0
- ในขณะที่ i <ขนาด L1 และ j <ขนาด L2 ให้ทำ
- ans :=ขั้นต่ำของ ans และ |L1[i] - L2[j]|
- ถ้า L1[i]
- ผม :=ผม + 1
- มิฉะนั้น
- j :=j + 1
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
class Solution:
def solve(self, L1, L2):
L1.sort()
L2.sort()
ans = float("inf")
i = j = 0
while i < len(L1) and j < len(L2):
ans = min(ans, abs(L1[i] - L2[j]))
if L1[i] < L2[j]:
i += 1
else:
j += 1
return ans
ob = Solution()
L1 = [2, 7, 4] L2 = [16, 10, 11]
print(ob.solve(L1, L2)) อินพุต
[2, 7, 4], [16, 10, 11]
ผลลัพธ์
3