如何找到一个数组中的非相邻数字的最大总和的数字指数

问题描述:

我已经想出了算法来找到数组中的非相邻元素的最大总和,但我有一些麻烦找到哪些数字是摘取总结。这里是我的最大总和(不包括一些初始化)算法:如何找到一个数组中的非相邻数字的最大总和的数字指数

int n; //number of cells. Cells are labeled from 1 to n 
int num[]; // all the numbers 
int findMax[]; // findMax[i] equals to the current maximum score 
for (int i = 0; i<n; i++){ 
    if (i == 0){ 
     findMax[0] = num[0]; 
    } 
    else if (i == 1){ 
     findMax[1]= Math.max(findMax[0],num[1]); 

    } 
    else{ 
     findMax[i]=Math.max(findMax[i-2]+num[i], findMax[i-1]); 

} 
return findMax[n]; 

它不是那么明显,我让我们选取号码的指数之。有人可以给我任何有关这方面的见解吗?谢谢!

+1

我是堆栈溢出社区的新用户。如果我的问题不清楚,请在这里留言。欢迎任何提示或建议。 – Andyzz

使用自己的条件来获得最佳变体而不是Math.max

当您从两个变体中选择最大值时,请将最佳变体索引写入一些额外的存储(数组)中。

最后展开最佳组合的曲目。

我希望这个线索足以解决任务。