题解 | 调整方阵

#include <bits/stdc++.h>
#include <utility>
#include <vector>
using namespace std;

void swapRows(vector<vector<int>>& matrix, int row1, int row2) {
    if (row1 >= matrix.size() || row2 >= matrix.size() || row1 < 0 || row2 < 0) {
        cout << "行索引超出范围!" << endl;
        return;
    }
    swap(matrix[row1], matrix[row2]);
}

void exchange(vector<vector<int>>& a, int k) {
    int l = k, max = a[l][k];
    for (int i = l; i < a.size(); i++) {
        if (a[i][k] >= max) {
            max = a[i][k];
            l = i;
        }
    }
    swapRows(a, k, l);
}

int main() {
    int n;
    while (cin >> n) {
        vector<vector<int>>a(n, vector<int>(n));
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++)cin >> a[i][j];
        }
        for(int i=0;i<n;i++)exchange(a, i);
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                cout<<a[i][j]<<" ";
            }cout<<endl;
        }
    }
}

你无法想象swap函数的功能到底有多强大

全部评论

相关推荐

点赞 评论 收藏
分享
醉蟀:你是我今年见过的最美牛客女孩
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务