สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums และค่าเป้าหมายอื่น เราต้องหาจำนวนคู่สูงสุดโดยที่แต่ละคู่ i
ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[2, 4, 6, 10, 11], target =5 ผลลัพธ์จะเป็น 2 ตามที่เราจะได้รับคู่:(2, 6), (5, 10)
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- N :=ขนาด A
- เรียงลำดับรายการ A
- ตอบ :=0
- j :=N / 2
- สำหรับ i ในช่วง 0 ถึง N / 2 ให้ทำ
- ในขณะที่ j
- j :=j + 1
- ในขณะที่ j
- ถ้า j
- อัน :=ans + 1
- j :=j + 1
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
class Solution: def solve(self, A, target): N = len(A) A.sort() ans = 0 j = N >> 1 for i in range(N >> 1): while j < N and A[j] - A[i] < target: j += 1 if j < N: ans += 1 j += 1 return ans ob = Solution() nums = [2, 4, 6, 10, 11] target = 5 print(ob.solve(nums, target))
อินพุต
[2, 4, 6, 10, 11], 5
ผลลัพธ์
2