54. Spiral Matrix && 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:
- vector<vector<int>> generateMatrix(int n) {
- vector<vector<int>> res(n,vector<int>(n,));
- if (n == ) return res;
- int i = ;
- int rowS = ,rowE = n - ,colS = ,colE = n -;
- while(i <= n * n)
- {
- for (int j = colS;j <= colE;++j)
- {
- res[rowS][j] = i++;
- }
- rowS++;
- for (int j = rowS;j <= rowE;++j)
- {
- res[j][colE] = i++;
- }
- colE--;
- for (int j = colE;j >= colS;--j)
- {
- res[rowE][j] = i++;
- }
- rowE--;
- for (int j = rowE;j >= rowS;--j)
- {
- res[j][colS] = i++;
- }
- colS++;
- }
- return res;
- }
- };
Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.
Example 1:
- Input:
- [
- [ 1, 2, 3 ],
- [ 4, 5, 6 ],
- [ 7, 8, 9 ]
- ]
- Output: [1,2,3,6,9,8,7,4,5]
Example 2:
- Input:
- [
- [1, 2, 3, 4],
- [5, 6, 7, 8],
- [9,10,11,12]
- ]
- Output: [1,2,3,4,8,12,11,10,9,5,6,7]
- class Solution {
- public:
- vector<int> spiralOrder(vector<vector<int>>& matrix) {
- int m = matrix.size(), n = m ? matrix[].size() : , u = , d = m - , l = , r = n - , p = ;
- vector<int> order(m * n);
- while (u <= d && l <= r) {
- for (int col = l; col <= r; col++) {
- order[p++] = matrix[u][col];
- }
- if (++u > d) {
- break;
- }
- for (int row = u; row <= d; row++) {
- order[p++] = matrix[row][r];
- }
- if (--r < l) {
- break;
- }
- for (int col = r; col >= l; col--) {
- order[p++] = matrix[d][col];
- }
- if (--d < u) {
- break;
- }
- for (int row = d; row >= u; row--) {
- order[p++] = matrix[row][l];
- }
- if (l++ > r) {
- break;
- }
- }
- return order;
- }
- };
54. Spiral Matrix && 59. Spiral Matrix II的更多相关文章
- Leetcode 54. Spiral Matrix & 59. Spiral Matrix II
54. Spiral Matrix [Medium] Description Given a matrix of m x n elements (m rows, n columns), return ...
- leetcode 54. Spiral Matrix 、59. Spiral Matrix II
54题是把二维数组安卓螺旋的顺序进行打印,59题是把1到n平方的数字按照螺旋的顺序进行放置 54. Spiral Matrix start表示的是每次一圈的开始,每次开始其实就是从(0,0).(1,1 ...
- leetcode@ [54/59] Spiral Matrix & Spiral Matrix II
https://leetcode.com/problems/spiral-matrix/ Given a matrix of m x n elements (m rows, n columns), r ...
- 59. Spiral Matrix && Spiral Matrix II
Spiral Matrix Given a matrix of m x n elements (m rows, n columns), return all elements of the matri ...
- [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 ...
- 54. 59. Spiral Matrix
1. Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral ...
- LeetCode第[54]题(Java):Spiral Matrix
题目:螺旋矩阵 难度:Medium 题目内容: Given a matrix of m x n elements (m rows, n columns), return all elements of ...
- LeetCode 54. 螺旋矩阵(Spiral Matrix) 剑指offer-顺时针打印矩阵
题目描述 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素. 示例 1: 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, ...
- 矩阵螺旋遍历Spiral Matrix,Spiral Matrix2
SpiralMatrix: Given a matrix of m x n elements (m rows, n columns), return all elements of the matri ...
随机推荐
- Day 06 作业
目录 Python基础实战之猜数字游戏 Python进阶实战之三级菜单 Python基础实战之猜数字游戏 给定数字,用户可以猜三次年龄 数字猜对,让用户选择两次奖励 用户选择奖励后可以退出 impor ...
- 【JS】310- 使用 focusout 事件,解决 iOS 键盘收起不归位问题
点击上方"前端自习课"关注,学习起来~ ,0); } }, 这时,我们问题得到解决了,当从输入框输入内容,然后点击键盘的完成收起键盘,效果符合我 ...
- mini_magick上传图片
rails上传图片需要用到的gem: gem 'carrierwave'gem 'mini_magick' 在项目Gemfil中添加上面的两个gem,然后bundle install 然后创建modl ...
- 【spring boot】配置信息
======================================================================== 1.feign 超时配置 2.上传文件大小控制 3.J ...
- Provider模式应用demo
参考ObjectPool对象池设计原理还原一个简易的Provider模式. using System; using System.Dynamic; using System.Reflection.Me ...
- Maven使用教程三:maven的生命周期及插件机制详解
前言 今天这个算是学习Maven的一个收尾文章,里面内容不局限于标题中提到的,后面还加上了公司实际使用的根据profile配置项目环境以及公司现在用的archetype 模板等例子. 后面还会总结一个 ...
- Ajax 的基本使用
Ajax简介 一门异步的加载技术,局部刷新 异步加载,可以在不重载整个网页的前提下,进行局部刷新 分为原生和JQ两种 JSON数据格式 Json对象转字符串: JSON.stringify() 字符串 ...
- 由于ie浏览器ajax缓存 导致layui table表格重载失败的解决办法
where: { time:new Date()//增加一个数据接口的额外参数→时间戳 }
- Linux上用IP转发使内部网络连接互联网
IP转发的概念: 使 Linux 机器像路由器一样将数据从一个网络发送到另一个网络.所以,它能作为一个路由器或者代理服务器,实现将一个连接的互联网或者网络连接共享给多个客户端机器. 1. 启用 IPv ...
- 阿里巴巴供应链平台事业部2020届秋招-Java工程师
阿里巴巴供应链平台事业部,2020届秋季校园招聘开始啦!Java开发工程师虚位以待,机会难得,占坑抓紧. 入职就发师兄,一对一师兄辅导. 在这里,你将有机会接触阿里集团的所有数据库.中间件等基础设施. ...