问题描述
给定一系列数字{1,2,4,1,7,8,3},要求其中互不相邻的数字之和的最大值。
解决思路
针对每一个数字,可以分为选择或者不选择的情况,由于其中会存在包含关系,所以我们从最后一个数字开始分析。假设i个数中不相邻数字之和的最大值为opt(i),第i个数字为arr(i).则对于第七个数字“3”,可以分为两种情况:
- 选择第七个数字“3” ,那么第六个数字“8”一定不能选,七个不相邻数字之和的最大值opt(7)变为前五个不相邻数字之和的最大值opt(5)和3的和,即opt(5)+3;
- 不选第七个数字“3” ,那么七个不相邻数字之和的最大值opt(7)变为前六个不相邻数字之和的最大值opt(6);
综合上述,即可得到