题解 | #二维数组操作#
二维数组操作
https://www.nowcoder.com/practice/2f8c17bec47e416897ce4b9aa560b7f4
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String a; StringBuffer bu = new StringBuffer(); char[] charAy; int[] exchage = new int[4]; int[] check = new int[2]; int[][] dataExcel; int i, l, n, row, col, rowIn, colIn; boolean exchange; try { while ((a = in.readLine()) != null && !a.isEmpty()) { charAy = a.toCharArray(); row = 0; col = 0; i = 0; n = 0; l = charAy.length; while (i < l) { if (charAy[i] == ' ') { row = n; n = 0; } else { n *= 10; n += charAy[i] - '0'; } if (i == l - 1) col = n; i++; } if (row > 9 || col > 9) { bu.append(-1).append("\n"); row = row > 9 ? 9 : row; col = col > 9 ? 9 : col; } else bu.append(0).append("\n"); dataExcel = new int[row][col]; a = in.readLine(); parseN(exchage, a); i = 0; exchange = true; while (i < exchage.length) { if (exchage[i] > row - 1 || exchage[i + 1] > col - 1) { exchange = false; break; } i += 2; } if (exchange) bu.append(0).append("\n"); else bu.append(-1).append("\n"); a = in.readLine(); rowIn = parse1(a); if (rowIn > row-1) { bu.append(-1).append("\n"); } else { if (row + 1 > 9) bu.append(-1).append("\n"); else bu.append(0).append("\n"); } a = in.readLine(); colIn = parse1(a); if (colIn > col-1) { bu.append(-1).append("\n"); } else { if (col + 1 > 9) bu.append(-1).append("\n"); else bu.append(0).append("\n"); } a = in.readLine(); parse2(check, a); if (check[0] > row - 1 || check[1] > col - 1) { bu.append(-1).append("\n"); } else bu.append(0).append("\n"); } } catch (IOException e) { throw new RuntimeException(e); } System.out.print(bu); } public static int parse1(String a) { char[] charAy = a.toCharArray(); int l = charAy.length, i = 0, n = 0; while (i < l) { n *= 10; n += charAy[i] - '0'; i++; } return n; } public static void parse2(int[] arr, String a) { char[] charAy = a.toCharArray(); int l = charAy.length, i = 0, n = 0; while (i < l) { if (charAy[i] == ' ') { arr[0] = n; n = 0; } else { n *= 10; n += charAy[i] - '0'; } if (i == l - 1) arr[1] = n; i++; } } public static void parseN(int[] arr, String a) { char[] charAy = a.toCharArray(); int l = charAy.length, i = 0, n = 0, j = 0; while (i < l) { if (charAy[i] == ' ') { arr[j++] = n; n = 0; } else { n *= 10; n += charAy[i] - '0'; } if (i == l - 1) arr[j] = n; i++; } } }