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

โปรแกรมค้นหาผลรวมของคู่ที่ต่ำที่สุดที่มากกว่าเป้าหมายที่กำหนดใน Python


สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums และค่าเป้าหมายอื่น เราต้องหาผลรวมต่ำสุดของคู่ตัวเลขที่มากกว่าเป้าหมาย

ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[2, 4, 6, 10, 14] target =10 ผลลัพธ์จะเป็น 12 ในขณะที่เราเลือก 2 และ 10

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • เรียงเลขรายการ
  • n :=ขนาดของ nums
  • คำตอบ :=10^10
  • i :=0, j :=n - 1
  • ในขณะที่ฉัน
  • ถ้า nums[i] + nums[j]> เป้าหมาย แล้ว
    • answer :=ขั้นต่ำของคำตอบ และ (nums[i] + nums[j])
    • j :=j - 1
  • มิฉะนั้น
    • ผม :=ผม + 1
  • ส่งคืนคำตอบ
  • ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

    ตัวอย่าง

    class Solution:
       def solve(self, nums, target): nums.sort()
          n = len(nums)
          answer = 10 ** 10
          i, j = 0, n - 1
          while i < j:
             if nums[i] + nums[j] > target:
                answer = min(answer, nums[i] + nums[j])
                j -= 1
             else:
                i += 1
          return answer
    ob = Solution()
    nums = [2, 4, 6, 10, 14]
    target = 10
    print(ob.solve(nums, target))

    อินพุต

    [2, 4, 6, 10, 14], 10

    ผลลัพธ์

    12