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

โปรแกรมรวมสองรายการที่เรียงแล้วเป็นรายการใหญ่ที่เรียงแล้วใน Python

สมมติว่ามีรายการที่เรียงแล้วสองรายการ A และ B เราต้องรวมพวกมันเป็นรายการเดียวที่เรียงแล้ว C ขนาดของรายการอาจต่างกัน

เช่น A = [1,2,4,7], B = [1,3,4,5,6,8] รายการรวม C จะเป็น [1,1,2,3,4,4,5,6,7,8]

ขั้นตอนการแก้ปัญหา

  • x := รายการใหม่
  • i := 0, j := 0
  • while i < len(lst0) และ j < len(lst1)
    • ถ้า lst0[i] > lst1[j] ใส่ lst1[j] เข้า x, j += 1
    • ถ้า lst0[i] < lst1[j] ใส่ lst0[i] เข้า x, i += 1
    • มิฉะนั้น ใส่ lst0[i] และ lst1[j] เข้า x, i += 1, j += 1
  • while i < len(lst0) ใส่ lst0[i] เข้า x, i += 1
  • while j < len(lst1) ใส่ lst1[j] เข้า x, j += 1
  • คืนค่า x

ตัวอย่างโค้ด

class Solution:
    def solve(self, lst0, lst1):
        x = []
        i = 0
        j = 0
        while i < len(lst0) and j < len(lst1):
            if lst0[i] > lst1[j]:
                x.append(lst1[j])
                j += 1
            elif lst0[i] < lst1[j]:
                x.append(lst0[i])
                i += 1
            else:
                x.append(lst0[i])
                x.append(lst1[j])
                i += 1
                j += 1
        while i < len(lst0):
            x.append(lst0[i])
            i += 1
        while j < len(lst1):
            x.append(lst1[j])
            j += 1
        return x

ob = Solution()
print(ob.solve([1,2,4,7], [1,3,4,5,6,8]))

อินพุต

[1,2,4,7], [1,3,4,5,6,8]

เอาต์พุต

[1, 1, 2, 3, 4, 4, 5, 6, 7, 8]