将数组元素划分为连续的集合并找到最小的总和

时间:2016-11-26 07:34:30

标签: java arrays algorithm

我们说我有一个数组:
*数字在0-100范围内
*阵列长度在0-10范围内
*每组的大小在0-3

范围内
int[] MyArray = {9,1,3,3,2,4,4,2,1,6}; //example

我希望将这个数组分成2个或3个元素之间的连续集合

[9,1] or [1,3] or [9,1,3] etc.

这样做的目的是我想总结这个集合并找到最小的总和。我该怎么做?

2 个答案:

答案 0 :(得分:1)

对于元素集,您可以使用二维数组 在二维数组二维使用中为您的集合大小。

算法:

1:创建2D数组。 2:使用第一个数组的索引

存储元素
class A 
{

public static void main(String[] args) {
    int k=0;
    int a[] = {1,3,4,5,6,7,8,9,5,2,4};
    int b[][] = new int[50][4];

    for(int i=0 ; i<a.length ; i+=3) 
    {
        for (int j=0 ; j<b[0].length ; i++ )
        {
            b[k][i] = a[i];

        }
        k++;
    }

    for(int i=0 ; i<a.length ; i+=3) 
    {
        for (int j=0 ; j<b[0].length ; j++ )
        {
            System.out.println(b[j][i]);                
        }
    }

  }
}

Graphical Representation

答案 1 :(得分:0)

  • 有一个从元素0(当前点)遍历的指针。
  • 计算到目前为止的元素之前的总和(ps)。
  • 使用前一个总和添加当前元素,看看它是否最低(根据您的逻辑省略了最大的前一个元素)。

如果你的数组有负面元素,你的问题对于编写算法是值得的。