程序在python的循环列表中查找不相邻元素的总和
假设我们有一个称为nums的数字列表,它表示一个循环列表。我们必须找到最大的不相邻数字之和。
因此,如果输入类似于nums=[10,3,4,8],那么输出将为14,因为我们可以取10和4。我们不能取10和8,因为它们是相邻的。
为了解决这个问题,我们将遵循以下步骤-
n:=nums的大小
nums1:=nums[从索引0到n-2]
nums2:=nums[从索引1到结尾]
定义一个功能f()。这需要我
如果i>=nums1的大小,则
返回0
返回nums1[i]+f(i+2)和f(i+1)的最大值
定义一个功能g()。这将花费j
如果j>=nums2的大小,则
返回0
返回nums2[j]+g(j+2)和g(j+1)的最大值
从主要方法中执行以下操作-
返回f和g的最大值
让我们看下面的实现以更好地理解-
示例
class Solution:
def solve(self, nums):
n = len(nums)
nums1 = nums[: n - 1]
nums2 = nums[1:]
def f(i):
if i >= len(nums1):
return 0
return max(nums1[i] + f(i + 2), f(i + 1))
def g(j):
if j >= len(nums2):
return 0
return max(nums2[j] + g(j + 2), g(j + 1))
return max(f(0), g(0))
ob = Solution()nums = [10, 3, 4, 8]
print(ob.solve(nums))输入值
[10, 3, 4, 8]
输出结果
14
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短