ในบทความนี้ เราจะเรียนรู้วิธีการแก้ปัญหาต่อไปนี้:
ข้อความปัญหา — กำหนดอาร์เรย์ 2 อาร์เรย์ ให้หาคู่ที่ใกล้ที่สุดจากอาร์เรย์ที่จัดเรียงแล้ว 2 อาร์เรย์
มาเปลี่ยนดูโค้ดตัวอย่างด้านล่างนี้:
ตัวอย่างโค้ด
# โมดูล sys
import sys
# ฟังก์ชันหาคู่
def print_(ar1, ar2, m, n, x):
# ความต่าง
diff = sys.maxsize
# ดัชนี
l = 0
r = n - 1
while (l < m and r >= 0):
# คู่ที่ใกล้ที่สุด
if abs(ar1[l] + ar2[r] - x) < diff:
res_l = l
res_r = r
diff = abs(ar1[l] + ar2[r] - x)
# ผลรวมของคู่
if ar1[l] + ar2[r] > x:
r = r - 1
else:
l = l + 1
# แสดงผลลัพธ์
print("The closest pair available is [", ar1[res_l], ",", ar2[res_r], "]")
# โปรแกรมหลัก
ar1 = [1, 3, 6, 9]
ar2 = [11, 23, 35, 50]
m = len(ar1)
n = len(ar2)
x = 20
print_(ar1, ar2, m, n, x)
ผลลัพธ์
The closest pair available is [ 9 , 11 ]

ตัวแปรทั้งหมดถูกประกาศในขอบเขตท้องถิ่น (local scope) และการอ้างอิงของมันแสดงในรูปภาพด้านบน
สรุป
ในบทความนี้ เราได้เรียนรู้วิธีการเขียนโปรแกรม Python สำหรับหาคู่ที่ใกล้ที่สุดจากอาร์เรย์ที่จัดเรียงแล้ว 2 อาร์เรย์