java 旋转方阵

简介: java 旋转方阵
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // N阶方阵
        int n = scanner.nextInt();
        // 构建方阵
        List<List<Integer>> matrix = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            List<Integer> row = new ArrayList<>();
            for (int j = 0; j < n; j++) {
                row.add(i * n + j + 1);
            }
            matrix.add(row);
        }
        // 打印方阵数据
        print(matrix);
        // 旋转M次
        int m = scanner.nextInt();
        // 旋转方阵
        matrix = rotate(matrix, m % 4);  // 旋转4次等于不旋转
        // 打印旋转后的方阵
        print(matrix);
    }

    static void print(List<List<Integer>> matrix) {
        for (List<Integer> row : matrix) {
            for (Integer integer : row) {
                System.out.print(integer + " ");
            }
            System.out.println();
        }
    }

    static List<List<Integer>> rotate(List<List<Integer>> matrix, int m) {
        // todo 参数校验异常处理
        if(m == 0){
            return matrix;
        }
        List<List<Integer>> result = new ArrayList<>();
        int size = matrix.size();
        // 旋转方阵90度
        for (int i = 0; i < size; i++) {
            List<Integer> row = new ArrayList<>();
            for (int j = 0; j < size; j++) {
                row.add(matrix.get(size - j - 1).get(i));
            }
            result.add(row);
        }
        return rotate(result, m - 1);
    }

运行

相关文章
|
Java
Java旋转数组中的最小数字(图文详解版)
1.题目描述 2.题解 分析 具体实现 方法一(遍历): 方法二(排序): 方法三(二分查找):
68 1
|
6月前
|
Java Go C++
Golang每日一练(leetDay0116) 路径交叉、回文对
Golang每日一练(leetDay0116) 路径交叉、回文对
61 0
Golang每日一练(leetDay0116) 路径交叉、回文对
|
6月前
|
C++ Java Go
Java每日一练(20230428) 搜索旋转排序数组、栈实现队列、平方根
Java每日一练(20230428) 搜索旋转排序数组、栈实现队列、平方根
67 0
Java每日一练(20230428) 搜索旋转排序数组、栈实现队列、平方根
|
6月前
|
算法 Python Java
Java每日一练(20230414) Pow(x, n) 、旋转图像、买卖股票的最佳时机 IV
Java每日一练(20230414) Pow(x, n) 、旋转图像、买卖股票的最佳时机 IV
40 0
Java每日一练(20230414) Pow(x, n) 、旋转图像、买卖股票的最佳时机 IV
|
6月前
|
Python Java 算法
Java每日一练(20230405) 地下城游戏、汇总区间、寻找旋转排序数组中的最小值2
Java每日一练(20230405) 地下城游戏、汇总区间、寻找旋转排序数组中的最小值2
50 0
Java每日一练(20230405) 地下城游戏、汇总区间、寻找旋转排序数组中的最小值2
|
11月前
|
机器学习/深度学习 Java
48. 旋转图像 --力扣 --JAVA
​ 给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 ​
52 0
|
Java API 数据安全/隐私保护
Java操作图片进行缩放旋转翻转加水印
Java操作图片进行缩放旋转翻转加水印
122 1
|
Java Maven
Java 旋转、翻转图片工具类(附代码) | Java工具类
Java 旋转、翻转图片工具类(附代码) | Java工具类
Java 旋转、翻转图片工具类(附代码) | Java工具类
|
人工智能 Java
Java实现图片无损任意角度旋转
Java实现图片无损任意角度旋转
257 1
编程作业(2) - 编程题 2. 骰子问题旋转(java)
编程作业(2) - 编程题 2. 骰子问题旋转(java)