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

โปรแกรมค้นหาการดำเนินการขั้นต่ำเพื่อให้อาร์เรย์เพิ่มขึ้นโดยใช้Python


สมมติว่าเรามีตัวเลขอาร์เรย์ ในการดำเนินการเดียว เราสามารถเลือกองค์ประกอบหนึ่งของอาร์เรย์และเพิ่มได้ 1 ตัวอย่างเช่น ถ้าเรามี [4,5,6] เราสามารถเลือกองค์ประกอบที่ดัชนี 1 เพื่อสร้างอาร์เรย์ [4,5,5] . จากนั้นเราต้องหาจำนวนขั้นต่ำของการดำเนินการที่จำเป็นในการเพิ่มจำนวนอย่างเคร่งครัด

ดังนั้น ถ้าอินพุตเท่ากับ nums =[8,5,7] ผลลัพธ์จะเป็น 7 เพราะเราต้องเพิ่มขึ้นเช่น [8,6,7],[8,7,7],[8,8 ,7],[8,9,7],[8,9,8],[8,9,9],[8,9,10].

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

  • จำนวน:=0

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

    • ถ้า nums[i+1] −=nums[i] แล้ว

      • นับ :=นับ + nums[i] - nums[i+1] + 1

      • nums[i+1] :=nums[i+1] + nums[i] - nums[i+1] + 1

  • จำนวนคืน

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

ตัวอย่าง

def solve(nums):
   count=0
   for i in range(len(nums)-1):
      if nums[i+1]<=nums[i]:
         count+=nums[i]-nums[i+1]+1
         nums[i+1]+=nums[i]-nums[i+1]+1
   return count
nums = [8,5,7]
print(solve(nums))

อินพุต

[8,5,7]

ผลลัพธ์

7