相关疑难解决方法(0)

2d阵列对角填充

1 2 3
4 5 6
7 8 9
Run Code Online (Sandbox Code Playgroud)

这是我的正常数组,但我需要对角线这样做

1 2 4
3 5 7
6 8 9
Run Code Online (Sandbox Code Playgroud)

这是让它工作的非常愚蠢的方法,但即使它不起作用,因为我无法找到第二列元素.

for (i = 0; i < arr.length; ++i) {
    for (n = 0; n < arr[0].length; ++n) {
        if (i == 0 && n == 0){
            arr[i][n] = 0;
        } else if (i == 0 && n == 1) {
            arr[i][n] = 2;
        } else if (i == 1 && n == 0) {
            arr[i][n] = 3;
        } else if …
Run Code Online (Sandbox Code Playgroud)

java arrays

17
推荐指数
2
解决办法
8140
查看次数

对角条中的横向矩形矩阵

我需要在这里完成同样的事情,但是要使用任何矩阵,而不仅仅是方形矩阵.此外,遍历的方向需要相反.我试着编辑我在那里找到的代码,但无法弄明白.

谢谢.

traversal matrix

10
推荐指数
1
解决办法
6633
查看次数

如何基于坐标对角填充2D数组

我正在构建一个类似热图的矩形阵列接口,我希望"热"位置位于数组的左上角,而"冷"位置位于右下角.因此,我需要一个对角填充的数组,如下所示:

    0    1    2    3
  |----|----|----|----|
0 | 0  | 2  | 5  | 8  |
  |----|----|----|----|
1 | 1  | 4  | 7  | 10 |
  |----|----|----|----|
2 | 3  | 6  | 9  | 11 |
  |----|----|----|----|
Run Code Online (Sandbox Code Playgroud)

所以实际上,我需要一个函数f(x,y)

f(0,0) = 0
f(2,1) = 7
f(1,2) = 6
f(3,2) = 11
Run Code Online (Sandbox Code Playgroud)

(或者,当然,类似的函数f(n)其中f(7)= 10,f(9)= 6等).

最后,是的,我知道这个问题类似于这里,这里这里提出的问题,但那里描述的解决方案只是遍历而不填充矩阵.

arrays algorithm math

6
推荐指数
1
解决办法
4873
查看次数

对角线(之字形)遍历中坐标的索引

所以我有一个 4x4 矩阵,如下所示

 |0 1 2 3
-+-------
0|0 1 3 6
1|2 4 7 a
2|5 8 b d
3|9 c e f
Run Code Online (Sandbox Code Playgroud)

我按照其中的十六进制字符指定的顺序遍历它。所以从 (0, 0) 开始,然后是 (1, 0)、(0, 1)、(2, 0)、(1, 1)、(0, 2)...

所以这是代码:

def diagonal(n):
    for a in range(n):
        for b in range(a + 1):
            yield a - b, b
    for a in range(n - 1):
        for b in range(n - a - 1):
            yield n - b - 1, b + 1 + a
Run Code Online (Sandbox Code Playgroud)

迭代此给出

for x, …
Run Code Online (Sandbox Code Playgroud)

python matrix

6
推荐指数
1
解决办法
864
查看次数

标签 统计

arrays ×2

matrix ×2

algorithm ×1

java ×1

math ×1

python ×1

traversal ×1