从数组生成所有连续序列

shu*_*pta 8 java arrays logic

有一个数组说 [1,2,4,5,1]。我需要从中打印所有连续的子数组。

输入: [1,2,4,5,1]

输出:

 1
 1,2
 1,2,4
 1,2,4,5
 1,2,4,5,1
 2
 2,4
 2,4,5
 2,4,5,1
 4
 4,5
 4,5,1
 5
 5,1
 1
Run Code Online (Sandbox Code Playgroud)

我尝试过,但无法获得完整的系列。

//items is the main array
for(int i = 0; i < items.length; i++) {
    int num = 0;
    for(int j = 0; j < items.length - i; j++) {
        for(int k = i; k < j; k++) {
            System.out.print(items[k]);
        }
        System.out.println();
    }
}
Run Code Online (Sandbox Code Playgroud)

kai*_*kai 10

您只需要进行 2 次更改。外循环的迭代次数与数组有元素的次数一样多,这是正确的。第一个内循环应该使用外循环的索引作为起始索引 ( int j = i),否则你总是从第一个元素开始。然后将内循环中断条件改为k <= j,否则i不打印最后一个元素。

// i is the start index
for (int i = 0; i < items.length; i++)
{
    // j is the number of elements which should be printed
    for (int j = i; j < items.length; j++)
    {
        // print the array from i to j
        for (int k = i; k <= j; k++)
        {
            System.out.print(items[k]);
        }
        System.out.println();
    }
}
Run Code Online (Sandbox Code Playgroud)