Java数组打印金字塔数列:如何高效生成[1,1,2,1,2,3,…1,2,…n]数组?

Java实现金字塔数列数组

本文探讨如何用Java高效生成[1, 1, 2, 1, 2, 3, ..., 1, 2, ..., n]这样的金字塔数列数组。 给定整数n,目标是创建一个长度为n(n+1)/2的数组,包含该数列。例如,输入3,期望输出[1, 1, 2, 1, 2, 3]。

问题分析及错误代码:

原代码中的循环逻辑存在缺陷,未能正确生成金字塔数列。其错误在于循环内 ser[i]=j; 语句,该语句导致数组元素重复赋值,而非按预期顺序填充。

高效修正代码:

以下代码提供了一种高效的解决方案:

public static int[] arithSeries(int n) {
    int resultLength = n * (n + 1) / 2;
    int[] result = new int[resultLength];
    int index = 0;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= i; j++) {
            result[index++] = j;
        }
    }
    return result;
}

此代码使用嵌套循环,外层循环控制行数,内层循环控制每行元素的值。 index 变量作为数组索引,确保元素按顺序填充

。 该方法避免了原代码中的重复赋值问题,并以更清晰、高效的方式生成了金字塔数列数组。

此修正代码简洁高效地解决了问题,正确地生成了期望的金字塔数列数组。