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

Chương trình tìm một cặp (i, j) trong đó nums [i] + nums [j] + (i -j) được tối đa hóa trong Python?

Giả sử chúng ta có một danh sách các số được gọi là num, chúng ta phải tìm một cặp (i, j) trong đó i

Vì vậy, nếu đầu vào là nums =[6, 6, 2, 2, 2, 8], thì đầu ra sẽ là 11, như thể chúng ta chọn hai 6 thì điểm của nó là 6 + 6 + 0 - 1 =11.

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

  • lớn:=nums [0]

  • tối đa:=0

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

    • lớn:=lớn - 1

    • maxi:=tối đa là lớn + nums [i] và maxi

    • lớn:=tối đa là lớn và nums [i]

  • tối đa 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ụ

class Solution:
   def solve(self, nums):
      large = nums[0]

      maxi = 0
      for i in range(1, len(nums)):
         large -= 1
         maxi = max(large + nums[i], maxi)
         large = max(large, nums[i])

      return maxi

ob = Solution()
nums = [6, 6, 2, 2, 2, 8]
print(ob.solve(nums))

Đầu vào

[6, 6, 2, 2, 2, 8]

Đầu ra

11