leetcode剑指 Offer 29. 顺时针打印矩阵
一:题目
二:上码
class Solution {public:vector<int> spiralOrder(vector<vector<int>>& matrix) {//判空处理 否则会出现空指针异常if(matrix.size() == 0 || matrix[0].size() == 0){return {};}int m = matrix.size();// 行int n = matrix[0].size();//列int loop = min(m/2,n/2); //圈数int starty = 0;//每一圈的起点int startx = 0;//每一圈的起点int border = 1;int i,j;vector<int> ans;while (loop--) {i = startx;j = starty;//最上面的一行 列动 行不动for (j = starty; j < n-border; j++) ans.push_back(matrix[i][j]);//最右面的一列 行动 列不动for (i = startx; i < m-border; i++) ans.push_back(matrix[i][j]);//最下面的一行 for(; j >= border; j--) ans.push_back(matrix[i][j]);//最右面的一行for(; i >= border; i--) ans.push_back(matrix[i][j]); startx++;starty++;border++;//边界}//处理圈数不完整的时候 中间剩下的数 是一个 还是一行 还是一列 if (m > n && n%2 != 0) {//列为奇数 行为偶数 那么的话剩下中间的一列 for(; startx < m-border+1; startx++) {if(matrix[startx][starty] != NULL)ans.push_back(matrix[startx][starty]); }} else if (m < n && m%2 != 0) {//列为偶数 行为奇数 那么的话剩下中间一行for(; starty < n-border+1; starty++) { if(matrix[startx][starty] != NULL) {ans.push_back(matrix[startx][starty]);}}} else if (m%2 != 0 && m == n){int mid1 = m/2;int mid2 = n/2; ans.push_back(matrix[mid1][mid2]);}return ans;}
};
记得判空啊 记得判空 否则空指针异常
leetcode剑指 Offer 29. 顺时针打印矩阵相关推荐
- 《LeetCode力扣练习》剑指 Offer 29. 顺时针打印矩阵 Java
<LeetCode力扣练习>剑指 Offer 29. 顺时针打印矩阵 Java 一.资源 题目: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 示例 1: 输入:matr ...
- 剑指 Offer 29. 顺时针打印矩阵
题目 剑指offer的解题思路 顺时针打印矩阵,可以分解为每次打印一个数,顺序是从左到右,从上到下,然后从右到左,从下到上. 打印每一圈的起点(startX,startY)分别为(0,0),(1,1) ...
- 打印矩阵 java_【Java】 剑指offer(29) 顺时针打印矩阵
本文参考自<剑指offer>一书,代码采用Java语言. 题目 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 思路 每次打印矩阵最外面的一圈(用方法printMatrix ...
- 【完整可运行代码】剑指 Offer 29. 顺时针打印矩阵
立志用最少的代码做最高效的表达 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2, ...
- 剑指offer——29.顺时针打印矩阵(不熟)
题目: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字 ...
- 【leetcode】剑指 Offer 29. 顺时针打印矩阵(shun-shi-zhen-da-yin-ju-zhen-lcof)(模拟)[简单]
链接 https://leetcode-cn.com/problems/shun-shi-zhen-da-yin-ju-zhen-lcof/ 耗时 解题:38 min 题解:10 min 题意 输入一 ...
- 剑指offer 29 顺时针打印矩阵(可逆时针,任一点开始)
原书上写的解太麻烦了,而且还没有扩展性(比如从右上角开始打印,或者逆时针打印). 此外多个for循环的起止点也让人头晕,每个方向都要单独判断步进方向,因此代码也缺少优雅性. 这里我用direction ...
- 【算法】剑指 Offer 29. 顺时针打印矩阵
1,概述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 示例 1: 输入:matrix = [[1,2,3],[4,5,6
- 剑指Offer(29)顺时针打印矩阵
题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2, ...
最新文章
- 高红冰:“五新”创新乡村商业实践
- 实现mysql百度式查询_mysql查询优化建议(百度)
- Event Loop、计时器、nextTick
- 【Windows Server 2019】文件共享,應該不支持 Everyone 訪問
- 一图读懂基于鲲鹏处理器的全栈混合云华为云Stack6.5
- linux java amr转mp3_部署ffmpeg及amr转mp3方法
- Eclipse开启全字母代码提示
- memcached的安装(server、client)、magent整合
- php提取汉字拼音首字母,php获取汉字拼音首字母的函数(真正可以使用的)
- 国家开放大学2021春1078复变函数题目
- SPI(Service Provider Interface)机制
- echarts词云第一次出现不了数据要刷新才能出现_隐秘的角落弹幕分析,制作词云,看看观众们对该剧的评价如何...
- 简单的matlab阶乘计算
- windows蓝屏dump分析方法
- 【Excel】五种方法添加打勾方框(其他符号差不多)
- Windowed functions can only appear in the SELECT or ORDER BY clauses
- Linux下的文件及文件后缀名
- 安卓逆向_3 --- 篡改apk名称和图标、修改包名实现应用分身、修改资源去广告、去除re管理器广告...
- android棉花糖,清甜棉花糖:安卓M/Android 6.0上手体验评测
- 计算机基础1模拟题,计算机基础模拟题1(有答案)
热门文章
- 在离线环境中发布.NET Core至Windows Server 2008
- Win7安装OnlyOffice(不使用Docker)
- 最新Modis影像数据下载完整流程---以MOD13Q1 NDVI数据下载为例(2020年12月2日更新)
- 剑指offer之树的子结构
- Android之添加快捷方式(Shortcut)到手机桌面
- 按一行一行的方法将一个文本文件复制到另一个文件中_命令行技巧:分割文件内容...
- char添加一个字符_给你五十行代码把图片变成字符画!程序:太多了,一半都用不完...
- 解决IDEA修改已有项目为maven项目时目录结构被改变的问题
- 三联《少年》创刊,各领域佼佼者畅言新知,帮少年建立思维素养体系!
- 老娘不就是没化妆吗?你几个意思?