让我们将9s的矩阵定义为:
让我们将爆炸数字定义为位置处的数字,该数字可以分解为所有相邻邻居(包括自身)之间的相等整数,并且每个部分的绝对值都大于0。
从上一个矩阵开始,让位置处的数字爆炸(索引为0)
有时,将结果分解为大于1的有理数。这是爆炸数字时我们需要避免的事情。在这种情况下,余数将分配给爆炸数字。
为了演示它,让我们继续使用我们以前的矩阵。这次我们将爆炸位置
在这里,我们有3个倍数和数字本身。在这里,等式类似于,每个给我们2 个,余数给我们2个。
同样,有时一个数字的大小也不足以使其在邻居之间相等的部分(abs大于0)分解(|有理数| <1)。在这种情况下,我们需要从爆炸数中“借”来维持“大于0”的条件。让我们继续前面的示例,并展开位置。
面临的挑战是,给定一个位置列表和一个自然数的有限非空数组,在分解位置列表中的每个数字之后,返回分解形式。
测试用例
输入: initial matrix: [[3, 3, 3], [3, 3, 3], [3, 3, 3]], numbers: [[0,0],[0,1],[0,2]]
输出: [[1, 0, 1], [5, 6, 5], [3, 3, 3]]
输入: Initial matrix: [[9, 8, 7], [8, 9, 7], [8, 7, 9]], numbers: [[0,0],[1,1],[2,2]]
输出: [[4, 11, 8],[11, 5, 10],[9, 10, 4]]
输入: Initial matrix: [[0, 0], [0, 0]], numbers: [[0,0],[0,0],[0,0]]
输出: [[-9, 3],[3, 3]]
输入: Initial Matrix: [[10, 20, 30],[30, 20, 10],[40, 50, 60]], numbers: [[0,2],[2,0],[1,1],[1,0]]
输出: [[21, 38, 13], [9, 12, 21], [21, 71, 64]]
输入: Initial Matrix: [[1]], numbers: [[0,0]]
输出: [[1]]
输入: Initial Matrix: [[1, 2, 3]], numbers: [[0,0], [0, 1]]
输出: [[1, 1, 4]]
笔记
输入/输出规则适用
您可以假设输入矩阵永远不会为空
您可以假设坐标总是有效的
测试用例中的输入坐标为(行,列)。如果需要将其设为(x,y),则可以交换值。如果是这样,请在回答中说明