有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在2D数组中查找节点位置

有人能帮我解决这个问题吗

有一个二维数组,其中每个单元格都包含其占位符含义(0,0)包含0(0,1)包含1,以此类推。。。如果我们给占位符,那么我们如何计算行和列。示例:以4X4矩阵为例。因此,配置是:

01 2 3 4 5 6 7 8 9 10 11 12 13 14 15

现在,以10为例。。这是第(2,2)位。那么,我们如何确定这一点呢? 我已经有了一个算法,我从10中减去2*4(因为4是数组的大小),2给我行,2给我列。因此,它就像:

列=给定节点-(行*n),其中n是nXn数组的大小,行是0,1,2,。。

但是我需要一个更好的算法。至少时间复杂度应该更低。请程序员提出建议

附言:我是在设计蒙特卡罗模拟的解决方案时遇到这个问题的


共 (4) 个答案

  1. # 1 楼答案

    (Num/4,Num%4)可能就是你想要的

    编辑:其中4是行数或列数,在本例中两个都是4

  2. # 2 楼答案

    如果矩阵行宽度为RowWidth 然后:

    row=floor(x/RowWidth)
    col=x % RowWidth
    
  3. # 3 楼答案

    row = node / n (integer division, for example 9/4 = 2)
    column = node % n (modolus operator)
    

    上面提到的是n*n矩阵,对于具有n行和m列的矩阵的一般情况:

    row = node / m
    column = node % m
    
  4. # 4 楼答案

    要确定列表中元素的二维坐标,应使用以下公式(行代表行大小):

    int r = index / ROW;
    int c = index % ROW;
    

    例如: 10 / 4 = 2, 10%4=2

    希望这有帮助