顺时针输出矩阵
来源:互联网 发布:指针数组初始化 null 编辑:程序博客网 时间:2024/05/29 13:44
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
- 输入
- 直接输入方陈的维数,即n的值。(n<=100)
- 输出
- 输出结果是蛇形方陈。
- 样例输入
3
样例输出
7 8 16 9 25 4 3
***************************************** 相关 *********************************************
【剑指offer】顺时针打印矩阵:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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) {
int
row = matrix.size();
int
col = matrix[
0
].size();
vector<
int
> res;
if
(row ==
0
|| col ==
0
)
return
res;
// 输入的二维数组非法,返回空的数组
int
left =
0
, top =
0
, right = col -
1
, bottom = row -
1
;
// 定义四个关键变量,表示左上和右下的打印范围
while
(left <= right && top <= bottom)
{
for
(
int
i = left; i <= right; ++i) res.push_back(matrix[top][i]); // left to right
for
(
int
i = top +
1
; i <= bottom; ++i) res.push_back(matrix[i][right]);
// top to bottom
if
(top != bottom) // right to left
for
(
int
i = right -
1
; i >= left; --i) res.push_back(matrix[bottom][i]);
if
(left != right)
// bottom to top
for
(
int
i = bottom -
1
; i > top; --i) res.push_back(matrix[i][left]);
left++,top++,right--,bottom--;
}
return
res;
}
};
注意:1)for(int i=0;i<res.size(); i++)
cout<<res[i];2)int M[101][101];
for(int i=0; i<row; i++)
for(int j=0; j<col; j++)
cin>>M[i][j];3)vector<int> res;
int left=0, top=0, right= col-1, bottom = row-1;
while(left <= right && top <= bottom)
{
for(int i=left; i<=right; i++) res.push_back(M[top][i]);
for(int i=top+1; i<=bottom; i++) res.push_back(M[i][right]);
if(top!=bottom)
for(int i=right-1; i>=left; i--) res.push_back(M[bottom][i]);
if(left!=right)
for(int i=bottom-1; i>top; i--) res.push_back(M[i][left]);
left++, top++, right--, bottom--;
}
- 顺时针输出矩阵
- 顺时针输出矩阵
- 顺时针输出矩阵
- 数组矩阵的顺时针输出
- 联想笔试2011,顺时针输出矩阵
- java蛇形矩阵输出方法(顺时针、逆时针)
- 顺时针矩阵
- 笔试题&面试题:顺时针输出一个矩阵
- 剑指offer——矩阵顺时针输出问题
- 用Swift3实现n*n阶矩阵顺时针输出
- 【矩阵】矩阵顺时针旋转
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- 顺时针打印矩阵
- 叠筐
- (五)4 写个简单的LED驱动
- 超像素分割技术发展情况梳理(Superpixel Segmentation)
- 关于iframe页面嵌入后在ios设备上position=fixed属性失效的解决办法
- 第四周项目1-建立单链表
- 顺时针输出矩阵
- bzoj1593(线段树)
- caffe-android-lib 在ubuntu下的编译
- 高精度模板
- 21 viewPager--- hzScrollView ----llContainer
- Android TextView中文字通过SpannableString来设置超链接、颜色、
- 对类成员函数的另类调用方法
- 编程列出手机内置传感器
- COleDateTime::Format 格式 / MFC 时间格式