【世界速看料】#yyds干貨盤點# 名企真題專題: 棋子翻轉

2022-12-22 19:11:06 來源:51CTO博客


(資料圖片)

1.簡述:

描述

在 4x4 的棋盤上擺滿了黑白棋子,黑白兩色棋子的位置和數目隨機,其中0代表白色,1代表黑色;左上角坐標為 (1,1) ,右下角坐標為 (4,4) 。

現在依次有一些翻轉操作,要對以給定翻轉坐標(x,y)(也即第x行第y列)為中心的上下左右四個棋子的顏色進行翻轉。

給定兩個數組A和f,分別代表 初始棋盤 和 哪些要進行翻轉的位置(x,y),請返回經過所有翻轉操作后的棋盤。

例如輸入[[0,0,1,1],[1,0,1,0],[0,1,1,0],[0,0,1,0]],[[2,2],[3,3],[4,4]]時,初始鍵盤如下圖所示:

對應的輸出為[[0,1,1,1],[0,0,1,0],[0,1,1,0],[0,0,1,0]],如下圖所示:

示例1

輸入:

[[0,0,1,1],[1,0,1,0],[0,1,1,0],[0,0,1,0]],[[2,2],[3,3],[4,4]]

返回值:

[[0,1,1,1],[0,0,1,0],[0,1,1,0],[0,0,1,0]]

2.代碼實現:

import java.util.*;public class Solution {    /**     * 代碼中的類名、方法名、參數名已經指定,請勿修改,直接返回方法規定的值即可     *     *      * @param A int整型二維數組      * @param f int整型二維數組      * @return int整型二維數組     */    public int[][] flipChess (int[][] A, int[][] f) {        // write code here        int m = A.length;        int n = A[0].length;        for(int i = 0; i < f.length; i++) {            int x = f[i][0] - 1, y = f[i][1] - 1;            if(x > 0) A[x - 1][y] = 1 - A[x - 1][y];            if(y > 0) A[x][y - 1] = 1 - A[x][y - 1];            if(x + 1 < m) A[x + 1][y] = 1 - A[x + 1][y];            if(y + 1 < n) A[x][y + 1] = 1 - A[x][y + 1];        }        return A;    }}

標簽: 如下圖所示 分別代表 黑白兩色

上一篇:世界最新:2.Java基本語法(上):變量與運算符.md
下一篇:#yyds干貨盤點# LeetCode程序員面試金典:特定深度節點鏈表