Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ค้นหาคู่ที่แตกต่างทั้งหมดที่มีความแตกต่างเท่ากับ k ใน Python


ในบทความนี้เราจะมาดูวิธีการนับจำนวนคู่ของตัวเลขที่มีผลต่างเท่ากับ k ตัวเลขที่ระบุอยู่ในรูปของรายการและเราใส่ค่าของ k ให้กับโปรแกรม

ใช้สำหรับวนซ้ำ

ในแนวทางนี้ เราออกแบบลูปสองอัน อันหนึ่งอยู่ในลูปอีกอัน วงรอบนอกติดตามการเยี่ยมชมแต่ละองค์ประกอบของรายการที่กำหนด inner for loop จะคอยเปรียบเทียบองค์ประกอบที่เหลือแต่ละองค์ประกอบกับองค์ประกอบของลูปภายนอก และเพิ่มค่าของตัวแปรการนับหากตรงกับความแตกต่างที่ต้องการ

ตัวอย่าง

listA = [5, 3, 7, 2, 9]

k = 2
count = 0

# Elements of the list
for i in range(0, len(listA)):

# Make pairs
   for j in range(i + 1, len(listA)):

      if listA[i] - listA[j] == k or listA[j] - listA[i] == k:
         count += 1

print("Required Pairs: ",count)

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

Required Pairs: 3

การใช้ในขณะที่วนรอบ

ในอีกแนวทางหนึ่ง เราใช้ while loop alogn กับ if else clause ที่นี่เราเพิ่มค่าดัชนีปัจจุบันและดัชนีถัดไปโดยขึ้นอยู่กับว่าความแตกต่างระหว่างสองคู่นี้ตรงกับความแตกต่างที่ต้องการหรือไม่

ตัวอย่าง

listA = [5, 3, 7, 2, 9]

k = 2
count = 0

listA.sort()

next_index = 0
current_index = 0

while current_index < len(listA):
   if listA[current_index] - listA[next_index] == k:
      count += 1
      next_index += 1
      current_index += 1

   elif listA[current_index] - listA[next_index] > k:
      next_index += 1
   else:
      current_index += 1

print("Required Pairs: ",count)

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

Required Pairs: 3