สมมติว่าเรามีตัวเลขอาร์เรย์ ในการดำเนินการเดียว เราสามารถเลือกองค์ประกอบหนึ่งของอาร์เรย์และเพิ่มได้ 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