马蹄有一题

题目描述:给定一个二维数组,给你q次操作,交换x行和y行所有的元素,输出最后的矩阵

思路:不可能全部一个一个交换,肯定tle,设置一个idx数组,每次交换索引,最后输出g[idx[i]][j]即可

#include<bits/stdc++.h>
using namespace std;
int n,m,q,x,y;
int main(){
	cin>>n>>m;
	vector<vector<int>>g(n,vector<int>(m));//n行m列 
	vector<int>idx(n);
	for(int i=0;i<n;i++){
		idx[i]=i;
		for(int j=0;j<m;j++)
		cin>>g[i][j];
	}
	cin>>q;
	while(q--){
		cin>>x>>y;
		swap(idx[x-1],idx[y-1]);
		
	}
	for(int i=0;i<n;i++){
				for(int j=0;j<m;j++){
					cout<<g[idx[i]][j]<<" ";
				}
				cout<<"\n";
	}
	return 0;
}

全部评论

相关推荐

05-19 16:41
复旦大学 Python
ynq2126:我一直觉得现在考算法题没啥意义 真要选拔人才不如把公司实际项目中遇到的问题当成一系列场景题抛给求职者答 这才是能检测能力的东西
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务