diff --git a/MCA算法突击课/第02期/mca_01/Code01_CherryPickup.java b/MCA算法突击课/第02期/mca_01/Code01_CherryPickup.java index e6f43e1..06d9afd 100644 --- a/MCA算法突击课/第02期/mca_01/Code01_CherryPickup.java +++ b/MCA算法突击课/第02期/mca_01/Code01_CherryPickup.java @@ -20,12 +20,12 @@ public class Code01_CherryPickup { StreamTokenizer in = new StreamTokenizer(br); PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out)); while (in.nextToken() != StreamTokenizer.TT_EOF) { - int N = (int) in.nval; - in.nextToken(); int M = (int) in.nval; - int[][] matrix = new int[N][M]; - for (int i = 0; i < N; i++) { - for (int j = 0; j < M; j++) { + in.nextToken(); + int N = (int) in.nval; + int[][] matrix = new int[M][N]; + for (int i = 0; i < M; i++) { + for (int j = 0; j < N; j++) { in.nextToken(); matrix[i][j] = (int) in.nval; } diff --git a/MCA算法突击课/第02期/mca_01/Code03_IsCBT.java b/MCA算法突击课/第02期/mca_01/Code03_IsCBT.java index 83a4811..d3654fd 100644 --- a/MCA算法突击课/第02期/mca_01/Code03_IsCBT.java +++ b/MCA算法突击课/第02期/mca_01/Code03_IsCBT.java @@ -88,33 +88,4 @@ public class Code03_IsCBT { return new Info(isFull, isCBT, height); } - // for test - public static TreeNode generateRandomBST(int maxLevel, int maxValue) { - return generate(1, maxLevel, maxValue); - } - - // for test - public static TreeNode generate(int level, int maxLevel, int maxValue) { - if (level > maxLevel || Math.random() < 0.5) { - return null; - } - TreeNode head = new TreeNode((int) (Math.random() * maxValue)); - head.left = generate(level + 1, maxLevel, maxValue); - head.right = generate(level + 1, maxLevel, maxValue); - return head; - } - - public static void main(String[] args) { - int maxLevel = 5; - int maxValue = 100; - int testTimes = 1000000; - for (int i = 0; i < testTimes; i++) { - TreeNode head = generateRandomBST(maxLevel, maxValue); - if (isCompleteTree1(head) != isCompleteTree2(head)) { - System.out.println("Oops!"); - } - } - System.out.println("finish!"); - } - } diff --git a/MCA算法突击课/第02期/mca_01/Code04_NumberOfIslands.java b/MCA算法突击课/第02期/mca_01/Code04_NumberOfIslands.java index a4be2b8..2e9c07a 100644 --- a/MCA算法突击课/第02期/mca_01/Code04_NumberOfIslands.java +++ b/MCA算法突击课/第02期/mca_01/Code04_NumberOfIslands.java @@ -6,7 +6,7 @@ import java.util.List; import java.util.Stack; // 本题为leetcode原题 -// 测试链接:https://leetcode.com/problems/number-of-islands/ +// 测试链接:https://leetcode.cn/problems/number-of-islands/ // 所有方法都可以直接通过 public class Code04_NumberOfIslands { @@ -235,83 +235,4 @@ public class Code04_NumberOfIslands { } - // 为了测试 - public static char[][] generateRandomMatrix(int row, int col) { - char[][] board = new char[row][col]; - for (int i = 0; i < row; i++) { - for (int j = 0; j < col; j++) { - board[i][j] = Math.random() < 0.5 ? '1' : '0'; - } - } - return board; - } - - // 为了测试 - public static char[][] copy(char[][] board) { - int row = board.length; - int col = board[0].length; - char[][] ans = new char[row][col]; - for (int i = 0; i < row; i++) { - for (int j = 0; j < col; j++) { - ans[i][j] = board[i][j]; - } - } - return ans; - } - - // 为了测试 - public static void main(String[] args) { - int row = 0; - int col = 0; - char[][] board1 = null; - char[][] board2 = null; - char[][] board3 = null; - long start = 0; - long end = 0; - - row = 1000; - col = 1000; - board1 = generateRandomMatrix(row, col); - board2 = copy(board1); - board3 = copy(board1); - - System.out.println("感染方法、并查集(map实现)、并查集(数组实现)的运行结果和运行时间"); - System.out.println("随机生成的二维矩阵规模 : " + row + " * " + col); - - start = System.currentTimeMillis(); - System.out.println("感染方法的运行结果: " + numIslands3(board1)); - end = System.currentTimeMillis(); - System.out.println("感染方法的运行时间: " + (end - start) + " ms"); - - start = System.currentTimeMillis(); - System.out.println("并查集(map实现)的运行结果: " + numIslands1(board2)); - end = System.currentTimeMillis(); - System.out.println("并查集(map实现)的运行时间: " + (end - start) + " ms"); - - start = System.currentTimeMillis(); - System.out.println("并查集(数组实现)的运行结果: " + numIslands2(board3)); - end = System.currentTimeMillis(); - System.out.println("并查集(数组实现)的运行时间: " + (end - start) + " ms"); - - System.out.println(); - - row = 10000; - col = 10000; - board1 = generateRandomMatrix(row, col); - board3 = copy(board1); - System.out.println("感染方法、并查集(数组实现)的运行结果和运行时间"); - System.out.println("随机生成的二维矩阵规模 : " + row + " * " + col); - - start = System.currentTimeMillis(); - System.out.println("感染方法的运行结果: " + numIslands3(board1)); - end = System.currentTimeMillis(); - System.out.println("感染方法的运行时间: " + (end - start) + " ms"); - - start = System.currentTimeMillis(); - System.out.println("并查集(数组实现)的运行结果: " + numIslands2(board3)); - end = System.currentTimeMillis(); - System.out.println("并查集(数组实现)的运行时间: " + (end - start) + " ms"); - - } - }