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