文档章节

LeetCode:Spiral Matrix II - 将元素1-n^2以螺旋序填充到矩阵

北风其凉
 北风其凉
发布于 2015/11/03 22:10
字数 359
阅读 436
收藏 0

1、题目名称

Spiral Matrix(螺旋输出矩阵中的元素)

2、题目地址

https://leetcode.com/problems/spiral-matrix-ii/

3、题目内容

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

中文:给出一个整数n,生成一个矩阵,使用数字1到n^2以螺旋顺序填充这个矩阵

例如:给出n=3,则生成如下矩阵:

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

4、解题方法1

做这道题的方式可以参考SpiralMatrix,遍历顺序是一样的,只不过SpiralMatrix是取数,这道题要做的是赋值。

Java代码如下:

/**
 * @功能说明:LeetCode 59 - Spiral Matrix II
 * @开发人员:Tsybius2014
 * @开发时间:2015年11月3日
 */
public class Solution {
    
    /**
     * 生成矩阵
     * @param n
     * @return
     */
    public int[][] generateMatrix(int n) {
        
        if (n < 0) {
            n = 0;
        }
        
        int[][] matrix = new int[n][n];
        if (n == 0) {
            return matrix;
        }
        
        int counter = 1;
        
        //左右上下四个边界
        int left = 0;
        int right = matrix[0].length - 1;
        int top = 0;
        int bottom = matrix.length - 1;

        int i;
        while (true) {
             
            //上边,自左至右
            for (i = left; i <= right; i++) {
                matrix[top][i] = counter++;
            }
            if (++top > bottom) {
                break;
            }
             
            //右边,自上至下
            for (i = top; i <= bottom; i++) {
                matrix[i][right] = counter++;
            }
            if (left > --right) {
                break;
            }
             
            //下边,自右至左
            for (i = right; i >= left; i--) {
                matrix[bottom][i] = counter++;
            }
            if (top > --bottom) {
                break;
            }
             
            //左边,自下至上
            for (i = bottom; i >= top; i--) {
                matrix[i][left] = counter++;
            }
            if (++left > right) {
                break;
            }
        }
        
        return matrix;
    }
}

END

© 著作权归作者所有

北风其凉

北风其凉

粉丝 123
博文 497
码字总数 462305
作品 4
朝阳
程序员
私信 提问
加载中

评论(0)

LeetCode:Spiral Matrix I II

Spiral Matrix Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order. For example, Given the following matrix: [[ 1, 2, 3 ],[ 4,......

tenos
2014/06/07
0
0
Leetcode【54、59、885】

问题描述:【Array】54. Spiral Matrix 解题思路: 这道题是给一个矩阵,按顺时针螺旋输出所有数字。 这道题做法很直接,就是从最外层到最内层一层一层按照顺时针螺旋输出各个数字即可。如下...

牛奶芝麻
2019/07/02
0
0
[算法][LeetCode] 数组

[算法][LeetCode]Search a 2D Matrix——二维数组的二分查找 http://www.cnblogs.com/hiddenfox/p/3402797.html 将排序的二维数组看做一维数组来处理。不重构数据的情况下,将二分查找的一维...

素雷
2017/10/19
8
0
LeetCode:Spiral Matrix - 螺旋输出矩阵中的元素

1、题目名称 Spiral Matrix(螺旋输出矩阵中的元素) 2、题目地址 https://leetcode.com/problems/spiral-matrix/ 3、题目内容 英文:Given a matrix of m x n elements (m rows, n columns...

北风其凉
2015/11/02
990
0
【LeetCode】Spiral Matrix(螺旋矩阵)

这是LeetCode里的第54道题。 题目要求: 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。 示例 1: 输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9...

1000sakura
2018/11/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

union

https://www.runoob.com/sql/sql-union.html

七宝1
24分钟前
21
0
项目架构

大多数的程序员,都是做业务开发的,我也是。每天的工作都围绕着产品的需求。我们总在不停地写需求,在不停地堆砌代码,还在不停地解决Bug。后来,我们越来越陷入细节,越来越不能把握全局。...

道道法
昨天
13
0
pygame关卡游戏之口红挑战游戏(小组)

游戏简介及操作: 1.游戏分为三关,每关限时60秒。 2.游戏每关难度递增。(轮盘的转速越来越快,口红数量的增多) 3.口红命中一个,增加10分。 4.口红命中重复位置即为失败。 开发工具:Pyc...

kikifly
昨天
18
0
textview简单实现圆角效果

在 drawable里面 创建一个 text_corner.xml 文件 <?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:col......

chenhongjiang
昨天
34
0
RabbitMQ消息中间件技术精讲笔记

[TOC] RabbitMQ消息中间件技术精讲笔记 错别字有点多, 改了一部分. 剩下的不影响阅读,实在没精力改了... 业界主流消息中间件介绍 MQ衡量指标 服务性能 数据存储 集群架构 主流MQ介绍 Active...

我爱吃炒鸡
昨天
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部