我在hackerrank中遇到一个相当简单的问题。问题要求输入方形矩阵并打印它的转置。在注册比赛后可以在这里找到问题。问题的名称是Transpose Matrix: https://www.hackerrank.com/contests/csdp-contest/challenges/
我在Java代码中对此问题的解决方案如下:
import java.io.*;
public class Solution {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line1[] = br.readLine().split(" ");//Read the first line to find the size of the array
int n = line1.length;
int ar[][] = new int[n][n];//initialize an integer array with size n
int rowNumber = 0;
for (int i=0;i<n;i++)
ar[rowNumber][i] = Integer.parseInt(line1[i]);//Store the first line in the array
rowNumber = 1;
//Store the next input lines in the array if any
for (int j=0;j<n-1;j++){
String line[] = br.readLine().split(" ");
for(int i=0;i<line.length;i++){
ar[rowNumber][i] = Integer.parseInt(line[i]);
}
rowNumber++;
}
//Print the transpose of the matrix by printing ar[j][i] instead of [i][j]
for(int i=0;i<rowNumber;i++){
for (int j=0;j<rowNumber;j++){
System.out.print(ar[j][i]+" ");
}
System.out.println();
}
}
}
上面的代码传递了与问题一起给出的测试用例,但是当我提交时,它失败了一个测试用例。我无法理解我是否遗漏了任何边缘情况或代码中是否存在错误。你能帮我解决一下这个问题吗?
答案 0 :(得分:1)
我不熟悉这个测验,但通常数字类型是常见问题(如int算术中的溢出等)。
在这里你似乎没有任何算术问题,但重新阅读问题并检查假设(输入格式可能?)总是值得的。