不相邻元素正数数组最大和值

该博客介绍了一个寻找正数数组中不相邻元素最大和的问题,通过遍历数组并使用两个变量curMax和preMax来跟踪包含当前元素和包含前一个元素的最大和,最终得到最大子数组和。
摘要由CSDN通过智能技术生成

题目:给定一个正数数组,找到一个子数组满足条件:

      1)子数组选择的元素不能包含原数组相邻元素

      2)满足条件1的前提下,得到的子数组的和值最大

思路:遍历一次数组,设置两个变量:

包含当前元素的最大值 curMax

包含前一个元素的最大值preMax

在遍历过程过不断更新上述两个变量:

curMax = current +preMax'     (preMax'表示上一轮中的值)

preMax = max(preMax', curMax')

 

具体案例数据分析:List = [2, 3, 4, 1, 9, 3, 2, 3, 3, 4]  

(1)list[0] = 2      curMax = 2+ 0 = 2    preMax = max(0, 0 ) =0

(2) list[1] = 3       curMax = 3+0 = 3     preMax = max(2, 0) = 2

(3) list[2] = 4       curMax = 4 + 2 = 6   preMax = max(3, 2)  =3

(4) list[3] =  1      curMax = 1 +3 =4     preMax = max(6, 3) =6

(5) list[4] =  9      curMax = 9 +6 =15    preMax = max(4, 6)&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值