重新排列数组元素,以获得最大的总和

时间:2015-05-10 17:32:54

标签: arrays

我有一个数组,其长度可以被3整除,元素都是降序排列。如果我们将数组元素分组3并取其总和,我应该得到最大值。

例如, int [] input = {9,8,7,6,5,4}

现在,如果我们对数组元素987和654进行分组,我们得到1641的总和。

我必须重新排列元素,以便获得最大值。

因此输出数组必须如下: int [] output = {9,7,5,8,6,4}

现在,如果我们对数组元素975和864进行分组,我们得到1839的总和。

我尝试了但无法得到它可以帮助我解决逻辑。

1 个答案:

答案 0 :(得分:0)

我用Python3编写了它。这一点可能是最均匀的数字分布。

inpArr = [5,2,8,4,9,6,7,1,3]

sortedInpArr = sorted(inpArr, reverse=True)
print(sortedInpArr)

buffNum = int(len(sortedInpArr) / 3)

for n in range(0, buffNum):
    for i in range(0, len(sortedInpArr)):
        if i % buffNum == n:
            print(sortedInpArr[i], end="")
    print() # new line