LeetCode上面没有输入输出练习,但是面试笔试一般需要自己输入输出案例:
于是自己写了这个数组输出:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
System.out.println("二维数组的行数:");
Scanner scan=new Scanner(System.in);
int r=scan.nextInt();
System.out.println("二维数组的列数:");
int c=scan.nextInt();
System.out.println("输入数组:");
int[][]matrix=new int[r][c];
scan.nextLine();//用来跳过行列后的回车符
for(int i=0;i<r;i++){
for(int j=0;j<c;j++){
matrix[i][j]=scan.nextInt();
System.out.print(matrix[i][j]+",");
}
System.out.println("");
}
}
}
输出
二维数组的行数:
3
二维数组的列数:
3
输入数组:
1 2 3 4 5 6
1,2,3,
4,5,6,
注意测试输入最后一位数字后面不要带空格!!!
因为next()方法不能得到带空格的字符串
试一试一维数组的吧
public class Main {
public static void main(String[] args) {
System.out.println("一维数组的行数:");
Scanner scan=new Scanner(System.in);
int r=scan.nextInt();
System.out.println("输入数组:");
int[]matrix=new int[r];
scan.nextLine();//用来跳过行列后的回车符
for(int i=0;i<r;i++) {
matrix[i] = scan.nextInt();
System.out.print(matrix[i] + ",");
}
System.out.println("");
}
}
测试:
一维数组的行数:
4
输入数组:
1 2 3 4
1,2,3,4,
get!!
以后做题老老实实加上测试,来看LeetCode的48题,旋转图像
要求:
给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。
你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。
原地就是不能新增数组来存储转换后的数据
输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[[7,4,1],[8,5,2],[9,6,3]]
import java.util.Scanner;
class Solution {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int x = sc.nextInt();
int y = sc.nextInt();
int[][] arr = new int[x][y];
for(int i = 0;i < x;i++){
for(int j = 0;j < y ;j++){
arr[i][j] = sc.nextInt();
}
}
rotate(arr);
for(int i = 0;i < x ;i++){
for(int j = 0;j < y ;j++){
System.out.println(arr[i][j] + " ");
}
}
}
}
public static void rotate(int[][] matrix) {
int length = matrix.length;
for(int i = 0; i<length/2;i++)
{
int [] temp = matrix[i];
matrix[i] = matrix[length - i -1];
matrix[length - i - 1] = temp;
}
for(int i = 0; i<length;i++){
for(int j = i; j < matrix[0].length ;j++){
int temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
}
}
贴上本地IDE结果:
get !