• + 0 comments

    C++ solution for this problem


    vector<string> cavityMap(vector<string> grid) {
        
        //Check if the grid is big enough for cavitys
        if(grid.size() < 3 || grid.at(0).size() < 3){
            return grid;
        }
        
        //Result 
        vector<string> result = grid;
        
        //Check for cavities
        for(int i = 1; i < (grid.size() - 1); i++){
            for(int j = 1; j < (grid.at(i).size() - 1); j++){
                if(grid.at(i).at(j-1) < grid.at(i).at(j) 
                && grid.at(i).at(j+1) < grid.at(i).at(j)
                && grid.at(i-1).at(j) < grid.at(i).at(j)
                && grid.at(i+1).at(j) < grid.at(i).at(j)){
                    result.at(i).at(j) = 'X';
                }
            }
        }
        
        return result;
    }