题解 | #棋子翻转#

只需要获得当前位置的上下左右棋子的值取反就行了

class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param A int整型vector<vector<>>
     * @param f int整型vector<vector<>>
     * @return int整型vector<vector<>>
     */
    vector<vector<int> > flipChess(vector<vector<int> >& A,
                                   vector<vector<int> >& f) {
        // write code here
        for (const auto& pos : f) {
            if (pos[1] - 2 >= 0) {
                A[pos[0] - 1][pos[1] - 2] = !A[pos[0] - 1][pos[1] - 2]; // left
            }
            if (pos[1] < A[0].size()) {
                A[pos[0] - 1][pos[1]] = ! A[pos[0] - 1][pos[1]]; // right
            }
            if ((pos[0] - 2) >= 0)
                A[pos[0] - 2][pos[1] - 1] = !A[pos[0] - 2][pos[1] - 1]; // up
            if (pos[0] < A[0].size())
                A[pos[0]][pos[1] - 1] = !A[pos[0]][pos[1] - 1]; // down
        }
        return A;
    }
};
全部评论

相关推荐

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