• 1105 Spiral Matrix(32行代码+详细注释)


    分数 25

    全屏浏览题目

    切换布局

    作者 CHEN, Yue

    单位 浙江大学

    This time your job is to fill a sequence of N positive integers into a spiral matrix in non-increasing order. A spiral matrix is filled in from the first element at the upper-left corner, then move in a clockwise spiral. The matrix has m rows and n columns, where m and n satisfy the following: m×n must be equal to N; m≥n; and m−n is the minimum of all the possible values.

    Input Specification:

    Each input file contains one test case. For each case, the first line gives a positive integer N. Then the next line contains N positive integers to be filled into the spiral matrix. All the numbers are no more than 104. The numbers in a line are separated by spaces.

    Output Specification:

    For each test case, output the resulting matrix in m lines, each contains n numbers. There must be exactly 1 space between two adjacent numbers, and no extra space at the end of each line.

    Sample Input:

    1. 12
    2. 37 76 20 98 76 42 53 95 60 81 58 93

    Sample Output:

    1. 98 95 93
    2. 42 37 81
    3. 53 20 76
    4. 58 60 76

    代码长度限制

    16 KB

    时间限制

    200 ms

    内存限制

    64 MB

    #include
    using namespace std;
    int main(){
        int n;
        cin>>n;
        int r,c,a[n];
        for(int i=0;i>a[i];
        sort(a,a+n,greater());//从大到小排序 
        for(int i=1;i<=n/i;i++){//获得符合条件的行和列 
            if(n%i==0){
                r=n/i;
                c=i;
            }
        }
        int dx[4]={0,1,0,-1},dy[4]={1,0,-1,0};//分别对应右,下,左,上 
        vector>res(r,vector(c));//二维动态数组 
        for(int i=0,x=0,y=0,d=0;i         res[x][y]=a[i];//每次先赋值 
            int tx=x+dx[d],ty=y+dy[d];//获取当前下标的下一个下标 
            if(tx<0||tx>r-1||ty<0||ty>c-1||res[tx][ty]){//若下一个下标不合法 
                d=(d+1)%4;//换个方向 
                tx=x+dx[d],ty=y+dy[d];//重新获取下标 
            }
            x=tx,y=ty;//获取下一个下标 
        }
        for(int i=0;i         cout<         for(int j=1;j         cout<     }
        return 0;
    }

  • 相关阅读:
    【云原生】Kubernetes----POD控制器
    一、什么是JAVA
    Spring Cloud Alibaba微服务第8章之OpenFeign
    CompletableFuture-CompletionStage接口源码分析和四大静态方法初讲
    uniapp 实时定位(系统、后台运行、支持息屏)插件 Ba-Location
    文献阅读的思路
    在张朝阳的直播间里,没有搜狐的未来
    【Linux】基础:进程地址空间
    【初识AI】(一):ASR和NLP
    启动单个jar服务指令
  • 原文地址:https://blog.csdn.net/m0_66329385/article/details/130909469