栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++ JZ29 顺时针打印矩阵

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++ JZ29 顺时针打印矩阵

JZ29 顺时针打印矩阵
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵:
[[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]

//旋转矩阵
vectorans;
void re(vector>ma,vector&ans,int r,int c){
    if(ma.empty()||ma[0].empty())return;
    if(r<=0||c<=0)return;
    for(auto&a:ma[0])ans.push_back(a);
    for(int i=1;i1)
        for(int i=ma[r-1].size()-1;i>=0;i--)ans.push_back(ma[r-1][i]);
    if(c>1)
        for(int i=r-2;i>0;i--)ans.push_back(ma[i].front());
    vector>temp;
    for(int i=1;i
        vectort;
        for(int j=1;j
            t.push_back(ma[i][j]);
        }
        temp.push_back(t);
    }
    re(temp,ans,r-2,c-2);
}
vector printMatrix(vector > matrix) {
    if(matrix.empty())return ans;
    int r = matrix.size();
    int c = matrix[0].size();
    
    re(matrix,ans,r,c);
    return ans;
}
int main() {
	int r, c;
	cin >> r >> c;
	vector > matrix;
	while (r--) {
		vectort;
		int cc = c;
		while (cc--) {
			int n;
			cin >> n;
			t.push_back(n);
		}
		matrix.push_back(t);
	}
	vectorans;
	ans = printMatrix(matrix, ans);
	return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/847666.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号