题解 | #二维数组操作#

二维数组操作

https://www.nowcoder.com/practice/2f8c17bec47e416897ce4b9aa560b7f4

#include <bits/stdc++.h>

using namespace std;

bool initExcel(int m, int n){
    return m <=9 && n <= 9;
}

bool swapXY(int x1, int y1, int x2, int y2, int m, int n, vector<vector<int>>& vec){
    if(x1 < m && x2 < m && y1 < n && y2 < n){
        //int tmp = vec.at(x1).at(y1);
        //vec.at(x1).at(y1) = vec.at(x2).at(y2);
        //vec.at(x2).at(y2) = tmp;
        return true;
    }
    
    return false;
}

bool insertRows(int insertRow, int m, int n, vector<vector<int>>& vec){
    if(insertRow < 0 || insertRow >= m || m == 9){ //
        return false;
    }
    else{
        //vector<int> tmp(n, 0);
        //vec.insert(vec.begin() + insertRow - 1, tmp);
        //vec.pop_back(); //恢复初始化时的大小
        return true;
    }
}

bool insertCols(int insertCol, int m, int n, vector<vector<int>>& vec){
    if(insertCol < 0 || insertCol >= n || n == 9){ //
        return false;
    }
    else{
        //vector<int> tmp(m, 0);
        //vec.insert(vec.begin() + insertCol - 1, tmp);
        //vec.pop_back(); //恢复初始化时的大小
        return true;
    }
}

bool selectXY(int selectX, int selectY, int m, int n){
    return selectX >= 0 && selectX < m && selectY >= 0 && selectY < n;
}

int main(){
    int m = 0, n = 0;
    while(cin >> m >> n){
        if(initExcel(m, n)) cout << "0" << endl;
        else cout << "-1" << endl;
                    
        vector<vector<int>> vec(m, vector<int>(n, 0));
        int x1 = 0, y1 = 0, x2 = 0, y2 = 0;
        cin >> x1 >> y1 >> x2 >> y2;
        if(swapXY(x1, y1, x2, y2, m, n, vec)) cout << "0" << endl;
        else cout << "-1" << endl;
            
        int insertRow = 0;
        cin >> insertRow;
        if(insertRows(insertRow, m, n, vec)) cout << "0" << endl;
        else cout << "-1" << endl;
        int insertCol = 0;
        cin >> insertCol;
        if(insertCols(insertCol, m, n, vec)) cout << "0" << endl;
        else cout << "-1" << endl;
        
        int selectX = 0, selectY = 0;
        cin >> selectX >> selectY;
        if(selectXY(selectX, selectY, m, n)){
            cout << "0" << endl;
        }
        else{
            cout << "-1" << endl;
        }

    }
    
    return 0;
}

华为题库题解 文章被收录于专栏

牛客华为题库的题解

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务