Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm các phép toán tối thiểu để tăng mảng bằng Python

Giả sử chúng ta có một số mảng. Trong một thao tác, chúng ta có thể chọn một phần tử của mảng và tăng nó lên 1. Ví dụ, nếu chúng ta có [4,5,6], chúng ta có thể chọn phần tử ở chỉ số 1 để tạo mảng [4,5,5] . Sau đó, chúng tôi phải tìm số lượng thao tác tối thiểu cần thiết để làm cho số lượng tăng lên nghiêm ngặt.

Vì vậy, nếu đầu vào là nums =[8,5,7], thì đầu ra sẽ là 7, vì chúng ta cần tăng như [8,6,7], [8,7,7], [8,8 , 7], [8,9,7], [8,9,8], [8,9,9], [8,9,10].

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • đếm:=0

  • đối với tôi trong phạm vi từ 0 đến kích thước của nums - 1, thực hiện

    • nếu nums [i + 1] - =nums [i] thì

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

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

  • số lần trả lại

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

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))

Đầu vào

[8,5,7]

Đầu ra

7