java - 如何构建二维数组金字塔

标签 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}}

最佳答案

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

因此,让我们在图表上将 Rows 和 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

希望这能给您一个开始,使您能够解决剩余的作业。

关于java - 如何构建二维数组金字塔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49588511/

相关文章:

java - 使用 javax.mail 从 IMAP 服务器读取邮件

java - 在一行中读取多个坐标 (Java)

java - Map<String, Serializable> 是什么意思?

python - 如何计算 Numpy 数组中某个范围内的值?

python - 如何在特定条件下组合大型列表(再次列表)

algorithm - 在直线多边形中填充矩形

algorithm - 插入优先队列。 MIT c编程开放课件

java - jpa 合并非托管实体

javascript - 将一系列 JSON 数据从 php 回显到 JavaScript,

cmd.exe(批处理)脚本中的数组、链表等数据结构