[剑指offer]顺时针打印矩阵
2016-04-26 13:52
288 查看
题目描述
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.分析:其实之前也做过类似题,之前是一个正方形矩阵,现在换成长宽不一定相等的了。定义四个变量固定打印的对角线的角,然后依次打印就可以了。要注意过程中不能重复打印和缺少元素。
class Solution { public: vector<int> printMatrix(vector<vector<int> > matrix) { vector<int>ret; int m=matrix.size(); int n=matrix[0].size(); if(m==0||n==0) return ret; int row1=0; int row2=m-1; int col1=0; int col2=n-1; while(row1<=row2&&col1<=col2){ for(int i=col1;i<=col2;i++){ ret.push_back(matrix[row1][i]); } for(int i=row1+1;i<=row2;i++){ ret.push_back(matrix[i][col2]); } if(row2!=row1){ for(int i=col2-1;i>=col1;i--){ ret.push_back(matrix[row2][i]); } } if(col2!=col1){ for(int i=row2-1;i>row1;i--){ ret.push_back(matrix[i][col1]); } } row1++; row2--; col1++; col2--; } return ret; } };
相关文章推荐
- JSP九大内置对象及四个作用域
- jsp中EL表达式的内的11个对象
- JSP九大内置对象及四个作用域
- Js返回星期方法
- 【转载】CSS direction属性简介与实际应用
- js中push(),pop(),unshift(),shift()的用法小结
- JQuery的extend
- PDF表单域(FormField)在HTML显示与提交数据到服务器
- 使用selenium进行密码破解(绕过账号密码JS加密)
- Newtonsoft.Json
- 使用JS遇到的问题点
- JavaScript 函数讲解
- JQuery中$.ajax()方法参数详解
- jquery实现表格同名单元格合并
- jQuery常见的面试题
- 前端布局时的浏览器兼容性问题
- noty – jQuery通知插件
- JavaScript日期集合(今日,昨日,本周一,周末 ,月初,月末)
- 45个JavaScript小技巧
- servlet get post with html