打印二维数组意外输出Java

时间:2019-02-01 10:45:12

标签: java arrays printing 2d

我不确定代码是否有问题,因为每当我尝试手动运行它时,它就可以工作。任何想法我该如何解决?

  1. 这是我的方法

    
    
    
    "node_modules/jspdf/dist/jspdf.min.js"
    
  2. 我的打印方法

    "node_modules/jspdf/dist/jspdf.min.js"
    

3。输入和预期输出

4。运行代码时输出

<div>
  <input type="button" value="CPTURE" (click)="captureScreen()" />
</div>
<div class="pdf-intro">HTHML content</div>
<div class="pdf-intro">HTHML content</div>
<div class="pdf-intro">HTHML content</div>
<div class="pdf-intro">HTHML content</div>

1 个答案:

答案 0 :(得分:0)

因此,您正在尝试旋转此数组

3 4 5 6
4 5 6 7
5 6 7 8

进入

4 5 6 6
5 6 7 7
6 7 8 8

,以便基本上将“值”向左“移动”,但前提是新值大于以前的值。 但是,您的逻辑有一个缺陷:假设数组为“正方形”,则在两个for循环中都使用a.length作为限制,然后正确忽略最后一列。但是,在3x4数组中,这使得该算法只能在前两列工作,而不能在第三列工作! 您应该寻找数组当前行的实际长度,以防止出现奇怪的错误。您的算法可能会变成:

public static int[][] mystry2d(int[][] a){
 for(int r = 0; r<a.length; r++){
  for(int c=0; c<a[r].length-1;c++){
   if(a[r][c+1] > a[r][c]){
    a[r][c] = a[r][c+1] ;
   }
  }
 }
 return a ;
}

请也考虑缓存此值,这样就不会在每次迭代时对其进行重新评估