题解 | #矩阵交换#

矩阵交换

https://www.nowcoder.com/practice/ec44d4ff8c794b2f9205bdddbde96817

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        
        // 存矩阵
        int width = in.nextInt();
        int height  = in.nextInt();
        int[][] matrix = new int[width][height];

        for (int i = 0; i < width; i++) {
            for (int j = 0; j < height; j++) {
                matrix[i][j] = in.nextInt();
            }
        }


        // 执行操作
        in.nextLine();  // 防止报错。
        int doNum = Integer.parseInt(in.nextLine());
        for (int i = 0; i < doNum; i++) {
            
            changeMatrix(in, matrix);
        }

        // 输出结果
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix[0].length; j++) {
                System.out.print(matrix[i][j] + " ");
            }
            System.out.println();
        }
    }


    // 操作
    public static void changeMatrix(Scanner in, int[][] matrix) {
        String[] oprate = in.nextLine().split(" ");
        int n = Integer.parseInt(oprate[1]);     // n
        int m = Integer.parseInt(oprate[2]);     // m
        switch(oprate[0]) {
            case "r":   // 行行变换
                for (int i = 0; i < matrix.length; i++) {   // 行
                    if (i + 1 != n) {
                        continue;
                    }
                    for (int j = 0; j < matrix[0].length; j++) {    // 列
                        int changed = matrix[m - 1][j];
                        matrix[m - 1][j] = matrix[i][j];
                        matrix[i][j] = changed;
                    }
                }
                break;
            case "c":   // 列列变换
                for (int i = 0; i < matrix.length; i++) {           // 行
                    for (int j = 0; j < matrix[0].length; j++) {    // 列
                        if (j + 1 == n) {
                            int changed = matrix[i][m - 1];
                            matrix[i][m - 1] = matrix[i][j];
                            matrix[i][j] = changed;
                        }
                    }
                }
                break;  
        }

    }
}

全部评论

相关推荐

07-11 22:27
中南大学 Java
程序员牛肉:学历的话没问题。但是没问题的也就只有学历了。 其实你的整体架构是正确的,博客接着干。但是项目有点过于简单了。从后端的角度上讲,你这也就是刚入门的水平,所以肯定约面试够呛。 如果你要应聘后端岗位,那你第一个项目竟然是仿写操作系统。这个你要面试官咋问你。你一定要记住一点,你简历上写的所有的东西,都是为了证明你有能力胜任当前的岗位,而不是为了证明你自己会什么。 如果你只是浅浅的做几个项目,描述也都是烂大街。技术点也都是各种混水类的配置类需求,那你就不要幻想自己能走多远。一定要保持思考,保持学习。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务