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;
        }
    }
  • 相关阅读:
    react-redux简单使用
    jQuery——Js与jQuery的相互转换
    移除HTML5 input在type="number"时的上下小箭头
    echarts 5.0 地图
    Vue echarts 设置初始化默认高亮
    echarts 渐变色
    隐藏滚动条css
    echarts 柱状图--圆角
    echarts 气泡图--option
    Vue 圆柱体组件
  • 原文地址:https://www.cnblogs.com/wentiliangkaihua/p/10648193.html
Copyright © 2011-2022 走看看