该程序在Python中查找列表中最大的不相邻元素之和
假设我们有一个称为nums的数字列表,我们将定义一个函数,该函数返回最大的非相邻数字之和。这里的数字可以是0或负数。
因此,如果输入类似于[3、5、7、3、6],那么输出将为16,因为我们可以分别用3、7和6来获得16。
为了解决这个问题,我们将按照以下步骤操作:
如果nums的大小<=2,则
返回最大数
noTake:=0
取:=nums[0]
对于范围为1到nums的i
取:=noTake+数字[i]
noTake:=noTake和Take的最大值
返回noTake的最大值
让我们看下面的实现以更好地理解-
示例
class Solution:
def solve(self, nums):
if len(nums) <= 2:
return max(nums)
noTake = 0
take = nums[0]
for i in range(1, len(nums)):
take, noTake = noTake + nums[i], max(noTake, take)
return max(noTake, take)
ob = Solution()
nums = [3, 5, 7, 3, 6]
print(ob.solve(nums))输入项
[3, 5, 7, 3, 6]
输出结果
16
热门推荐
1 训练狗狗基础
2 怎么训练狗狗笑
3 怎么训练狗狗卧下
4 上海狗狗训练基地
5 训练狗狗排便
6 狗狗基础训练
8 如何训练狗狗装死
9 狗狗站姿训练
10 狗狗训练用品
11 训练狗狗吧
12 狗狗要怎么训练
13 怎么训练狗狗玩球
14 训练狗狗唤回
15 狗狗训练躺下
16 狗狗训练指令
17 狗狗的训练技巧
18 狗狗不好训练