c_cpp GFG排序矩阵行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp GFG排序矩阵行相关的知识,希望对你有一定的参考价值。

using namespace std;

// #GFG #Problem #Sorting
// https://practice.geeksforgeeks.org/contest-problem/sort-matrix-rows/0/

vector<pair<int,int>> zeroCount(vector< vector<int> > a);
void zeroSort(vector< pair<int,int> > a);
int findMin(vector< pair<int,int> > a);

int main(){
    int t;
    cin>>t;
    while(t--){
        int r,c;
        cin>>r>>c;
        vector< vector<int> > a(r);
        for(int i=0;i<r;i++){
            a[i].resize(c);
            for(int j=0;j<c;j++){
                cin>>a[i][j];
            }
        }
        zeroSort(zeroCount(a));
        cout<<endl;
    }
    return 0;
}

vector<pair<int,int>> zeroCount(vector< vector<int> > a){
    vector< pair<int,int> > ans;
    for(int i=0;i<a.size();i++){
        int z=0;
        for(int j=0;j<a[i].size();j++){
            if(a[i][j]==0){
                z++;
            }
        }
        ans.push_back({i,z});
    }
    return ans;
}

void zeroSort(vector< pair<int,int> > a){
    while(a.size()>0){
        int minI=findMin(a);
        cout<<a[minI].first+1<<" ";
        a.erase(a.begin()+minI);
    }
    
}
int findMin(vector< pair<int,int> > a){
    int min=INT_MAX;
    int minI;
    for(int i=0;i<a.size();i++){
        if(a[i].second<min){
            min=a[i].second;
            minI=i;
        }
    }
    return minI;
}

以上是关于c_cpp GFG排序矩阵行的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp GFG 2个排序数组的中位数

c_cpp GFG 2个排序数组的中位数

c_cpp GFG-门

c_cpp GFG骑士步行

c_cpp GFG发现号码

c_cpp GFG最低成本路径