LeetCode:螺旋矩阵||【59】
LeetCode:螺旋矩阵||【59】
题目描述
给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
示例:
输入: 3
输出:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
题目分析
这道题难度也是中等,是那道恶心题的衍生版,但是说实话难度小于1,且已经明示一定是正方形矩阵。我们直接改一下1的代码就可以了!并且效率是非常高的!
  
这道题简直也丧心病狂☺!我们采用的方式是一圈一圈赋值!
答案将是从第一个外层按顺时针顺序填写所有元素,然后是第二个外层的元素,依此类推。
我们首先定义四个元素,r1,r2,c1,c2,这将框定一个范围,我们顺时针赋值这个范围边上的值,每次赋值以后再次缩小框。
好的问题来了?
1.要赋值几个框?
times=Math.min(长,宽)%2==0?Math.min(长,宽)/2:Math.min(长,宽)/2+1;
2.顺时针赋值的横纵坐标变化规律?如图所示有颜色是要赋值的框
  
Java题解
public class SpiralMatrixII_59 {
    public int[][] generateMatrix(int n) {
        int[][] arr = new int[n][n];
        int c1  =  0;
        int c2  = n-1;
        int r1  = 0;
        int r2 = n-1;
        int count =1 ;
        int times = Math.min(n,n)%2==0?Math.min(n,n)/2:Math.min(n,n)/2+1;
        for(int i=0;i<times;i++)
        {
            for (int c = c1; c <= c2; c++) arr[r1][c]=count++;
            for (int r = r1 + 1; r <= r2; r++) arr[r][c2]=count++;
            if (r1 < r2 && c1 < c2) {
                for (int c = c2 - 1; c > c1; c--) arr[r2][c]=count++;
                for (int r = r2; r > r1; r--) arr[r][c1]=count++;
            }
            r1++;
            r2--;
            c1++;
            c2--;
        }
        return arr;
    }
}
LeetCode:螺旋矩阵||【59】的更多相关文章
- LeetCode 59. Spiral Matrix II (螺旋矩阵之二)
		
Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order. For ...
 - [LeetCode] 59. Spiral Matrix II 螺旋矩阵 II
		
Given an integer n, generate a square matrix filled with elements from 1 to n^2 in spiral order. For ...
 - Java实现 LeetCode 59 螺旋矩阵 II
		
59. 螺旋矩阵 II 给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵. 示例: 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ...
 - 【LeetCode】59.螺旋矩阵II
		
59.螺旋矩阵II 知识点:数组: 题目描述 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix . 示例 输入:n = 3 ...
 - leetcode 54. 螺旋矩阵 及 59. 螺旋矩阵 II
		
54. 螺旋矩阵 问题描述 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素. 示例 1: 输入: [ [ 1, 2, 3 ], [ 4, 5, ...
 - LeetCode(59):螺旋矩阵 II
		
Medium! 题目描述: 给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵. 示例: 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, ...
 - LeetCode 59. 螺旋矩阵 II(Spiral Matrix II)
		
题目描述 给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵. 示例: 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7 ...
 - leetcode刷题-59螺旋矩阵2
		
题目 给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵. 思路 与螺旋矩阵题完全一致 实现 class Solution: def generateM ...
 - LeetCode 54. Spiral Matrix(螺旋矩阵)
		
Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral or ...
 
随机推荐
- 手动grub引导redhat
			
grub是redhat默认的引导程序,在安装redhat时会提示是否安装bootloader,但自己手贱选择不安装,待系统重启时就是grub命令行界面,不能直接进系统.瞬时感觉麻烦大了,只能手动输入咯 ...
 - Java并发编程(六)发布与逸出
			
"发布(Publish)"一个对象的意思指,使对象能够在作用域之外的代码中使用. 例如: 将一个指向该对象的引用保存到其他代码可以访问的地方 在一个非私有的方法中返回该引用 将引用 ...
 - Android Studio--NDK编译C代码为.so文件,JNI调用
			
前言: 从Android Studio开始,就支持jni和.so库调用了. 环境: Windows 7+Android Studio2.1.2+NDK版本:android-ndk-r10e 准备工作: ...
 - 进出口流程 & 报关单据
			
出口流程 一. 委托人 1. 需找货运代理公司 2. 向代理公司询问价格 一般为 ALL IN 价格( 空运费+燃油费+战险费 ) 总费用 = ALL IN 价格 * ( 货物公斤数 ) ALL IN ...
 - [浪风分享]App必死 Web永生 看Web的前世今生 必会卷土重来
			
当我们回顾技术的演变历史时,我们也应该关注技术演变的背后逻辑. 几年前,美国的<连线>杂志发表了“Web已死,Internet永生”的文章,由于作者之一是长尾理论的提出者克里斯.安德森(C ...
 - jQuery实现3D幻灯片
			
先看下效果图: 看到这个酷炫的效果有没有很眼馋啊!接下来我们就一起来学习实现它吧. 1.看到效果后我们先分析这个dom要怎么实现! 首先我们要用一个大容器包裹内容,其次这个看起来像是3d效果的图片实际 ...
 - 【ask】vmware(NAT)中的linux突然无法访问互联网网址,但是直接用ip可以访问。
			
前两天虚拟机里的linuxmint不知何故,突然无法访问互联网了.依稀记得是升级了win7下面的360安全卫士之后发生的事情.所以, 第1步就开始去找防火墙的各种设置,结果没有查到结果. 第2步猛然看 ...
 - hdu 4681(枚举+dp)
			
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4681 思路:首先预处理出串C在A,B中的所有的位置,然后从前向后求一次最长公共子序列,从后向前求一次最 ...
 - Python+selenium打开或关闭浏览器
			
Python+selenium打开或关闭浏览器 一.打开或关闭火狐浏览器 1. 初始化一个webdriver实例对象driver,然后打开和关闭firefox浏览器.要用selenium打 ...
 - Spring MVC的路径匹配
			
Spring MVC中的路径匹配比起标准web.xml的servlet映射要灵活得多.路径匹配的默认策略是由org.springframework.util.AntPathMatcher实现的.顾名思 ...