题解 | #牛棚安全升级#
牛棚安全升级
https://www.nowcoder.com/practice/d5a30a653ae141b989d6cbffe24c2522
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param nums int整型一维数组
# @return int整型
#
class Solution:
def minUpgrade(self, nums: List[int]) -> int:
# write code here
n = len(nums)
if n == 0:
return 0
if n == 1:
return nums[0]
dp1 = [0] * n
dp2 = [0] * n
dp1[0] = 0
dp2[0] = nums[0]
if n <= 3:
for i in range(1, n):
dp1[i] = max(dp1[i - 1], dp2[i - 1])
dp2[i] = dp1[i - 1] + nums[i]
return max(dp1[n - 1], dp2[n - 1]) -1
for i in range(1, n):
dp1[i] = max(dp1[i - 1], dp2[i - 1])
dp2[i] = dp1[i - 1] + nums[i]
return max(dp1[n - 1], dp2[n - 1])
用动态规划法来做,可能我的思路不对,仅供参考。

