螺旋矩阵
时间:2019-08-20
本文章向大家介绍螺旋矩阵,主要包括螺旋矩阵使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。
示例 1:
输入:
[
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
]
输出: [1,2,3,6,9,8,7,4,5]
思路: 主要设置了4个边界, 分别是上、下、左、右四个边界。
class Solution { public: vector<int> spiralOrder(vector<vector<int>>& matrix) { //if() vector<int> result; if(matrix.empty()) return result; int i1 = 0; int i2 = matrix.size()-1; int j1 = 0; int j2 = matrix[0].size()-1; while(true){ //从左到右 for(int n = j1; n<=j2; n++){ result.push_back(matrix[i1][n]); } //if(result.size() == matrix.size()*matrix[0].size()) break; if(++i1 > i2 ) break; //从上到下 for(int i = i1;i<=i2;i++){ result.push_back(matrix[i][j2]); } //if(result.size() == matrix.size()*matrix[0].size()) break; //j2--; if(--j2 < j1) break; //从右到左 for(int j = j2;j>=j1;j--){ result.push_back(matrix[i2][j]); } //if(result.size() == matrix.size()*matrix[0].size()) break; if(--i2 <i1) break; //从下到上 for(int k = i2; k >= i1; k--){ result.push_back(matrix[k][j1]); } //if(result.size() == matrix.size()*matrix[0].size()) break; if(++j1 > j2) break; //j1++; } for(int i = 0; i < result.size(); i++){ cout << result[i] << ","; } return result; } };
原文地址:https://www.cnblogs.com/Shinered/p/11381725.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- mongoDB (三) mongoDB分片集群
- mongoDB (四) mongoDB认证
- 一天一大 leet(二叉树中的最大路径和)难度:困难 DAY-21
- 一天一大 leet(把数字翻译成字符串)难度:中等 DAY-9
- 一天一大 leet(模式匹配)难度:中等 DAY-22
- 一天一大 leet(二进制求和)难度:简单 DAY-23
- xmake v2.3.7 发布, 新增 tinyc 和 emscripten 工具链支持
- 一天一大 leet(最接近的三数之和)难度:中等 DAY-24
- Django渲染模板
- 一天一大 leet(移除重复节点)难度:简单 DAY-26
- Spring Boot 项目瘦身指南,瘦到不可思议!
- BigData--Hadoop数据压缩
- 面试官问我什么是JMM
- django+nginx+gunicorn部署配置
- JVM的YGC,这次被它搞惨了!