zoukankan      html  css  js  c++  java
  • 59. Spiral Matrix II

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

    Example:

    Input: 3
    Output:
    [
     [ 1, 2, 3 ],
     [ 8, 9, 4 ],
     [ 7, 6, 5 ]
    ]
    class Solution {
        public int[][] generateMatrix(int n) {
    int[][] matrix = new int[n][n];
            int begin = 0, end = n - 1;
            int num = 1;
    
            while (begin < end) {
                for (int j = begin; j < end; ++j) matrix[begin][j] = num++;
                for (int i = begin; i < end; ++i) matrix[i][end] = num++;
                for (int j = end; j > begin; --j) matrix[end][j] = num++;
                for (int i = end; i > begin; --i) matrix[i][begin] = num++;
                ++begin;
                --end;
            }
    
            if (begin == end) matrix[begin][begin] = num;
    
            return matrix;
        }
    }

    左右

    上下

    右左

    下上

    class Solution {
        public int[][] generateMatrix(int n) {
            int[][] res = new int[n][n];
            int left = 0, right = n - 1, up = 0, down = n - 1;
            int num = 1;
            while(num <= n * n){
                for(int i = left; i <= right; i++) res[up][i] = num++;
                if(++up > down) break;
                for(int i = up; i <= down; i++) res[i][right] = num++;
                if(--right < left) break;
                for(int j = right; j >= left; j--) res[down][j] = num++;
                if(--down < up) break;
                for(int i = down; i >= up; i--) res[i][left] = num++;
                if(++left > right) break;           
            }
            return res;
        }
    }
  • 相关阅读:
    day 24
    day23
    day 22
    java中空格的操作
    java 解析Word文档以及Excel表格数据带有图片(2003/2007)
    java中创建文件夹
    http请求问题
    js弹框显示全部内容
    java实现HTTP请求的三种方式
    solr与java整合使用
  • 原文地址:https://www.cnblogs.com/wentiliangkaihua/p/10648193.html
Copyright © 2011-2022 走看看