题解 | #矩阵交换#

矩阵交换

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();
        }
    }
}
全部评论

相关推荐

贺兰星辰:不要漏个人信息,除了简历模板不太好以外你这个个人简介是不是太夸大了...
点赞 评论 收藏
分享
我也曾抱有希望:说的好直白
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务