题解 | #矩阵交换#

矩阵交换

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

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        int[][] arr = new int[n][m];

        int[] c = new int[n];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                arr[i][j] = sc.nextInt();
            }
        }
        // 变换几次
        int k = sc.nextInt();
        // 这里多加一个获取空格
        String ss = sc.nextLine();
        for (int i = 0; i < k; i++) {
            String s = sc.nextLine();
            String t = s.split(" ")[0]; // 操作
            int a =  Integer.valueOf(s.split(" ")[1]); // 行或者列
            int b =  Integer.valueOf(s.split(" ")[2]); // 行或者列
            if (t.equals("r")) {
                // 行变换
                // 创建一个和二维列相同的一维数组
                int[] tmp = new int[m];
                // 将a放到b中
                tmp = arr[a - 1];
                arr[a - 1] = arr[b - 1];
                arr[b - 1] = tmp;
            } else if (t.equals("c")) {
                // 列变换
                // 创建一个和二维行相同的一维数组
                int[] tmp = new int[n];
                // 备份
                for(int j=0; j<arr.length; j++) {
                    tmp[j] = arr[j][a-1];
                }
                // 赋值给a-1列
                  for(int j=0; j<arr.length; j++) {
                    arr[j][a-1] = arr[j][b-1];
                }
                // 赋值给b-1列
                for(int j=0; j<arr.length; j++) {
                    arr[j][b-1] = tmp[j];
                }
            }
        }
        // 输出结果
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                System.out.print(arr[i][j] + " ");
            }
            System.out.println();
        }
    }
}
全部评论

相关推荐

鼠鼠第一次实习,啥也不懂一直是自己一个人吃的饭,不会做工作老是被嫌弃,大人的世界是这样的吗?
我是星星我会发亮:好的mt有两种,一种愿意教你的,一种几乎什么活都不给你派让你很闲允许你做自己事情的
实习吐槽大会
点赞 评论 收藏
分享
认真搞学习:28小登的建议,投算法岗不要写什么物理竞赛,互联网+,多写点项目,用什么算法做了什么。还有本科算法是不可能的开发你这个也没有项目啊
点赞 评论 收藏
分享
风中翠竹:真的真的真的没有kpi。。。面试官是没有任何kpi的,捞是真的想试试看这个行不行,碰碰运气,或者是面试官比较闲现在,没事捞个人看看。kpi算HR那边,但是只有你入职了,kpi才作数,面试是没有的。
双非有机会进大厂吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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