สมมติว่าเรามีสองรายการ 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