解法一:目前只能想到这个,就是遍历f数组,然后在遍历的时候找到上下左右四个位置(当然之前会判断是否
满足边界要求),进行修改数组A中的值,最后返回A即可。
之后会去再看看其他优质解法,然后再来总结。

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param A int整型二维数组
     * @param f int整型二维数组
     * @return int整型二维数组
     */
    public int[][] flipChess (int[][] A, int[][] f) {
        // write code here
        //        棋子翻转
//        暴力解法:遍历f,然后判断是否超界,未超界就找到它的上下左右,然后进行改值
        for (int i = 0; i < f.length; i++) {
            int l = f[i][0] - 1, r = f[i][1] - 1;
//            上
            if (l - 1 >= 0) {
                A[l - 1][r] = (A[l - 1][r] == 0) ? 1 : 0;
            }
//            下
            if (l + 1 <= A.length - 1) {
                A[l + 1][r] = (A[l + 1][r] == 0) ? 1 : 0;
            }
//            左
            if (r - 1 >= 0) {
                A[l][r - 1] = (A[l][r - 1] == 0) ? 1 : 0;
            }
//            右
            if (r + 1 <= A[0].length - 1) {
                A[l][r + 1] = (A[l][r + 1] == 0) ? 1 : 0;
            }
        }
        return A;
    }
}