字节跳动第三题2048AC代码
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[][] matrix = new int[4][4]; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { matrix[i][j] = sc.nextInt(); } } switch (n) { case 1: for (int j = 0; j < 4; j++) { int temp = 0; for (int i = 0; i < 4; i++) { if (matrix[i][j] != 0) { boolean flag = false; for (int k = i + 1; k < 4; k++) { if (matrix[k][j] != 0) { if (matrix[i][j] == matrix[k][j]) { int ans = matrix[k][j] + matrix[i][j]; matrix[i][j] = matrix[k][j] = 0; matrix[temp++][j] = ans; flag = true; } break; } } if (!flag) { int ans = matrix[i][j]; matrix[i][j] = 0; matrix[temp++][j] = ans; } } } } break; case 2: for (int j = 0; j < 4; j++) { int temp = 3; for (int i = 3; i >= 0; i--) { if (matrix[i][j] != 0) { boolean flag = false; for (int k = i - 1; k >= 0; k--) { if (matrix[k][j] != 0) { if (matrix[i][j] == matrix[k][j]) { int ans = matrix[k][j] + matrix[i][j]; matrix[i][j] = matrix[k][j] = 0; matrix[temp--][j] = ans; flag = true; } break; } } if (!flag) { int ans = matrix[i][j]; matrix[i][j] = 0; matrix[temp--][j] = ans; } } } } break; case 3: for (int i = 0; i < 4; i++) { int temp = 0; for (int j = 0; j < 4; j++) { if (matrix[i][j] != 0) { boolean flag = false; for (int k = j + 1; k < 4; k++) { if (matrix[i][k] != 0) { if (matrix[i][j] == matrix[i][k]) { int ans = matrix[i][k] + matrix[i][j]; matrix[i][j] = matrix[i][k] = 0; matrix[i][temp++] = ans; flag = true; } break; } } if (!flag) { int ans = matrix[i][j]; matrix[i][j] = 0; matrix[i][temp++] = ans; } } } } break; case 4: for (int i = 0; i < 4; i++) { int temp = 3; for (int j = 3; j >= 0; j--) { if (matrix[i][j] != 0) { boolean flag = false; for (int k = j - 1; k >= 0; k--) { if (matrix[i][k] != 0) { if (matrix[i][j] == matrix[i][k]) { int ans = matrix[i][k] + matrix[i][j]; matrix[i][j] = matrix[i][k] = 0; matrix[i][temp--] = ans; flag = true; } break; } } if (!flag) { int ans = matrix[i][j]; matrix[i][j] = 0; matrix[i][temp--] = ans; } } } } break; } for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { if (j != 0) { System.out.print(" "); } System.out.print(matrix[i][j]); } System.out.println(); } } }
暴力搞出来的,也是运气好,试了一次就AC了
#字节跳动##笔试题目#