题解 | #回型矩阵#

回型矩阵

https://www.nowcoder.com/practice/36d5dfddc22c4f5b88a5b2a9de7db343

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int k = 1;
        int[][] arr = new int[n][n];
        int i = 0, i2 = 0, j = 0, j2 = 0, i3 = 0;
         for(i = 0;i< n;i++) {
            for (j = i; j < n; j++) { //从左到右
                if (arr[i][j] == 0)
                    arr[i][j] = k++;
                else { //在需要的时候停下,并记录j
                    break;
                }
            }
            j--;//注意上面的j多走了一格
            for (i2 = i + 1; i2 < n; i2++) { //从上到下
                if (arr[i2][j] == 0)
                    arr[i2][j] = k++;
                else { //在需要的时候停下,并记录i2
                    break;
                }
            }
            i2--;//注意上面的i2多走了一格
            for (j2 = j - 1; j2 >= 0; j2--) { //从右到左
                if (arr[i2][j2] == 0)
                    arr[i2][j2] = k++;
                else { //在需要的时候停下,并记录j2
                    break;
                }
            }
            j2++;//注意上面的j2多走了一格
            for (i3 = i2 - 1; i3 > i; i3--) { //从下到上
                if (arr[i3][j2] == 0)
                    arr[i3][j2] = k++;
                else { //在需要的时候停下,并记录i3
                    break;
                }
            }
            i3++;//注意上面的i3多走了一格
        }

        for (i = 0; i < n; i++) { //输出
            for (j = 0; j < n; j++) {
                System.out.print(arr[i][j] + " ");
            }
            System.out.println();
        }
    }
}

全部评论

相关推荐

昨天 11:56
门头沟学院 Java
感谢东子的收留
码农索隆:好好好,优秀优秀
点赞 评论 收藏
分享
昨天 12:07
门头沟学院 Java
勇敢牛牛不怕困难
投递OPPO等公司7个岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-15 17:17
听说过付费实习,没想到这么贵啊我去,要不我给你个腰子吧
哈哈哈,你是老六:这种公司一定要注意啊,不要随便签合同,只要签了后面钱可能回不来,而且你通过法律途径也弄不回
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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