如何构建二维数组金字塔

时间:2018-03-31 13:53:05

标签: java arrays algorithm

我需要编写一个构建二维数组的方法 - 金字塔使用从1到n的数字。

 int[][]  build(int n)

但我不知道什么算法可以帮助我。任何人都可以帮助我如何从n?

预测数组大小

示例:build(6)返回

            {{0, 0, 1, 0, 0},
            {0, 2, 0, 3, 0},
            {4, 0, 5, 0, 6}}

1 个答案:

答案 0 :(得分:1)

一个好的第一步可能是根据给定的N来查看数组需要多少行。一旦你发现获取列数并相应地填充它们应该是一个相对简单的事情。

因此,让我们将图形上的行与N之间的关系绘制为X和Y.您可以在脑中绘制它或将其可视化:(1,1),(2,3),(3,6)等...

正如您所看到的,这不是线性的,它似乎是抛物线的。所以你可以做一个小代数或使用程序为你计算抛物线: http://www.wolframalpha.com/input/?i=parabola+(1,1),(2,3),(3,6)

enter image description here

为了确认方程是有效的,用X = 4和X = 5进行测试,是的,它是有效的。 Y = 0.5X^2 + 0.5X

希望这会给你一个开始,使你能够解决其余的任务。