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

โปรแกรมค้นหารายการขนาด k โดยที่ความแตกต่างระหว่างรายการที่ใหญ่ที่สุดและน้อยที่สุดคือค่าต่ำสุดใน Python


สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums และจำนวนเต็ม k เราต้องเลือกองค์ประกอบจาก nums เพื่อสร้างรายการของขนาด k เพื่อให้ความแตกต่างระหว่างจำนวนเต็มที่มากที่สุดในรายการและจำนวนเต็มที่น้อยที่สุดในรายการจะต่ำที่สุด และเราจะคืนส่วนต่างนี้คืนให้

ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[3, 11, 6, 2, 9], k =3 ผลลัพธ์จะเป็น 4 เนื่องจากรายการที่ดีที่สุดที่เราสามารถทำได้คือ [2, 3, 6]

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

  • เรียงเลขรายการ

  • ls :=รายการใหม่

  • สำหรับฉันในช่วง 0 ถึงขนาดของ nums - k + 1 ทำ

    • ใส่ nums[i + k - 1] - nums[i] ต่อท้าย ls

  • คืนค่าขั้นต่ำของ ls

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

class Solution:
   def solve(self, nums, k):
      nums.sort()
      ls = []
      for i in range(len(nums) - k + 1):
         ls.append(nums[i + k - 1] - nums[i])
      return min(ls)
ob = Solution()
nums = [3, 11, 6, 2, 9]
k = 3
print(ob.solve(nums, k))

อินพุต

[3, 11, 6, 2, 9],3

ผลลัพธ์

4