最大化阵列中的对数量

时间:2017-04-17 03:28:09

标签: c arrays

这是我在这里的第一篇文章,我希望它符合规则。我还要事先感谢整个社区。

我是计算机科学的第二年,问题在于:我正在寻找一种方法来最大化在给定数组中相互接触的唯一偶数对的数量。 #34;折叠"它。独特偶数对的含义和"折叠"有一些限制,所以这里有两个例子(想象一个数组是一张纸,包含按顺序写入的数字):

int array[5] = {2, 4, 1, 6, 8};

在这个数组中,我最多有2对,因为我会"折叠"它在2到4之间,也在6到8之间,使这些数字相互接触一次。

另一个例子是:

int array[6] = {2, 1, 6, 4, 3, 2};

通过"折叠"在6到4之间,我会想象这样的假想文件:

2 1 6
2 3 4

这里偶数2和2彼此相邻,以及6和4,因为单个"折叠"那是。

需要注意的一些事项是:我可以在数组中存储多达1000个数字,对于" folds"的数量有无限制,并且只能有一个数字触摸另一个。所以这个数组:

int array[3] = {2, 2, 2};

通过在前两个或最后两个数字之间折叠,只有一对。

除了测试所有可能性之外,我无法找到最大化它的方法,而且我认为这不是解决问题的好方法。

最后1个问题:

  1. 如果不测试所有可能性,我该如何解决这个问题?

0 个答案:

没有答案