程序找到一对(i,j),其中nums [i] + nums [j] +(i -j)在Python中最大化?
假设我们有一个称为nums的数字列表,我们必须找到一个对(i,j),其中i<j,并且nums[i]+nums[j]+(i-j)被最大化。
因此,如果输入类似于nums=[6、6、2、2、2、2、8],则输出将为11,就像我们选择两个6一样,其得分为6+6+0-1=11。
为了解决这个问题,我们将按照以下步骤操作:
大:=nums[0]
最大:=0
对于范围为1到nums的i
大:=大-1
maxi:=大数+nums[i]和maxi的最大值
大:=大和数字的最大值[i]
返回最大值
让我们看一下下面的实现以获得更好的理解
示例
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))输入值
[6, 6, 2, 2, 2, 8]
输出结果
11
热门推荐
10 儿子立冬祝福语简短独特
11 对当兵的祝福语简短
12 侄儿高考试祝福语简短
13 伴郎红包祝福语朋友简短
14 媳妇生日简短祝福语朋友
15 公司年会祝福语简短最好
16 元旦感恩祝福语简短大全
17 红包祝福语简短10字
18 周六早晨祝福语简短