zoukankan      html  css  js  c++  java
  • leetcode------Spiral Matrix II

    标题: Spiral Matrix II 
    通过率: 31.3
    难度: 中等

    Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.

    For example,
    Given n = 3,

    You should return the following matrix:

    [
     [ 1, 2, 3 ],
     [ 8, 9, 4 ],
     [ 7, 6, 5 ]
    ]

    螺旋矩阵,一圈是一个循环,每次循环时都是从起点向右,向下,向左,向上,转一圈后继续下一个循环。。如上述3×3下一循环是从9开始。
    由上描述可以看出来每次循环的起点依次是(0,0)-》(1,1)-》(2,2)-》(3,3)
    每次叠加都是四个循环。直接看代码:
     1 public class Solution {
     2     public int[][] generateMatrix(int n) {
     3         int [][] result=new int[n][n];
     4         int value=1;
     5         int startx=0,starty=0,endx=n-1,endy=n-1;
     6         while(startx<=endx){
     7             value=contronl(startx,starty,endx,endy,value,result);
     8             startx++;
     9             starty++;
    10             endx--;
    11             endy--;
    12         }
    13         return result;
    14         
    15     }
    16     public int contronl(int startx,int starty,int endx,int endy,int value,int[][] result){
    17         if(startx==endx){
    18             result[startx][starty]=value;
    19             return -1;
    20         }
    21         for(int i=starty;i<=endy;i++){//向右
    22             result[startx][i]=value;
    23             value++;
    24         }
    25         for(int i=startx+1;i<=endx;i++){向下
    26             result[i][endy]=value;
    27             value++;
    28         }
    29         for(int i=endy-1;i>=starty;i--){向左
    30             result[endx][i]=value;
    31             value++;
    32         }
    33         for(int i=endx-1;i>=startx+1;i--){向上
    34             result[i][starty]=value;
    35             value++;
    36             
    37         }
    38         return value;
    39     }
    40 }
  • 相关阅读:
    1348:【例4-9】城市公交网建设问题
    1392:繁忙的都市(city)
    1381:城市路(Dijkstra)
    初识微积分
    进阶数论(1)逆元
    [题解] Codeforces Round #549 (Div. 2) B. Nirvana
    简单数论之整除&质因数分解&唯一分解定理
    [题解]ybt1365:FBI树(fbi)
    [题解]一本通1240:查找最接近的元素
    [题解]NOIP2018(普及组)T1标题统计(title)
  • 原文地址:https://www.cnblogs.com/pkuYang/p/4265326.html
Copyright © 2011-2022 走看看