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

ช่วงที่เล็กที่สุด I ใน Python


สมมติว่าเรามีอาร์เรย์ A ของจำนวนเต็ม ตอนนี้สำหรับแต่ละจำนวนเต็ม A[i] เราสามารถเลือก x ใดๆ ที่มีช่วง [-K ถึง K] แล้วเพิ่ม x ลงใน A[i] หลังจากขั้นตอนนี้ เรามีอาร์เรย์ B บางส่วน เราต้องหาความแตกต่างที่น้อยที่สุดที่เป็นไปได้ระหว่างค่าสูงสุดของ B และค่าต่ำสุดของ B

ดังนั้น หากอินพุตเป็น A =[0,10], K =2 เอาต์พุตจะเป็น 6 เนื่องจาก B =[2,8]

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

  • MAX :=(สูงสุด A) - K
  • MIN :=(ขั้นต่ำของ A) + K
  • ความแตกต่าง :=MAX - MIN
  • ถ้าผลต่าง <0 ไม่ใช่ศูนย์ แล้ว
    • คืน 0
  • มิฉะนั้นผลตอบแทนส่วนต่าง

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

ตัวอย่าง

class Solution:
   def smallestRangeI(self, A, K):
      MAX = max(A)-K
      MIN = min(A)+K
      difference = MAX-MIN
      if difference <0:
         return 0
      else:
         return difference
ob = Solution()
print(ob.smallestRangeI([0,10],2))

อินพุต

[0,10],2

ผลลัพธ์

6