数组中不包括相邻数字的最大总和

问题描述 投票:0回答:1

整数数组的最大和,如果我们考虑元素 a[i],那么我们不应该考虑 a[i]-1 和 a[i]+1。例如,如果数组 a = [1,1,1,1,1,2,2],则 o/p = 5,如果 a = [3,3,3,4,4,8,1],则 o/p =18。我应该使用什么方法。

我尝试过 dp 但不起作用

arrays sorting hashmap dynamic-programming hashset
1个回答
0
投票

为了解决这个问题,我们只查看其他每个数字,因为我们不需要相邻的项目。我们可以通过对数组的奇数索引求和,对数组的偶数索引求和,然后比较哪个索引和更高来做到这一点。请参阅以下代码片段,了解如何在 C# 中完成此操作:

    int[] a = {1,1,1,1,1,2,2};

    int oddMax = 0;
    int evenMax = 0;

    for(int i = 0; i < a.Length; i++)
    {
        if(i % 2 == 0 || i == 0)
            evenMax += a[i];
        else
            oddMax += a[i];
    }

    Console.WriteLine(oddMax);
    Console.WriteLine(evenMax);

这将告诉您数组中非相邻数字的最大总和。如果这对您的问题有帮助,请投票:)

© www.soinside.com 2019 - 2024. All rights reserved.