当前位置: 首页 > article >正文

【从零开始的LeetCode-算法】3127. 构造相同颜色的正方形

给你一个二维 3 x 3 的矩阵 grid ,每个格子都是一个字符,要么是 'B' ,要么是 'W' 。字符 'W' 表示白色,字符 'B' 表示黑色。

你的任务是改变 至多一个 格子的颜色,使得矩阵中存在一个 2 x 2 颜色完全相同的正方形。

如果可以得到一个相同颜色的 2 x 2 正方形,那么返回 true ,否则返回 false 。

示例 1:

输入:grid = [["B","W","B"],["B","W","W"],["B","W","B"]]

输出:true

解释:

修改 grid[0][2] 的颜色,可以满足要求。

示例 2:

输入:grid = [["B","W","B"],["W","B","W"],["B","W","B"]]

输出:false

解释:

只改变一个格子颜色无法满足要求。

示例 3:

输入:grid = [["B","W","B"],["B","W","W"],["B","W","W"]]

输出:true

解释:

grid 已经包含一个 2 x 2 颜色相同的正方形了。

提示:

  • grid.length == 3
  • grid[i].length == 3
  • grid[i][j] 要么是 'W' ,要么是 'B' 。

我的解答:

class Solution {
    public boolean canMakeSquare(char[][] grid) {
        
        for(int i = 0;i < 2;i++){
            for(int j = 0;j < 2; j++){
                /*
                    int w = 0;
                    w += grid[i][j] == 'W' ?  1 : 0;
                    w += grid[i][j + 1] == 'W' ?  1 : 0;
                    w += grid[i + 1][j] == 'W' ?  1 : 0;
                    w += grid[i + 1][j + 1] == 'W' ?  1 : 0;
                    if(w != 2) return true;
                */
                // 直接判断四个值是否为两个‘B’、两个‘W’,减少对象创建
                if((grid[i][j] + grid[i][j + 1] + grid[i + 1][j] + grid[i + 1][j + 1] ) != 2 * 'B' + 2 * 'W') return true;
            }
        }
        return false;

    }
}

 


http://www.kler.cn/a/370357.html

相关文章:

  • 【错误解决方案记录】spine3.8.75导出的数据使用unity-spine3.8插件解析失败报错的解决方案
  • 电脑换固态硬盘
  • TP4056锂电池充放电芯片教程文章详解·内置驱动电路资源!!!
  • 25/1/15 嵌入式笔记 初学STM32F108
  • UllnnovationHub,一个开源的WPF控件库
  • ScratchLLMStepByStep:训练自己的Tokenizer
  • 解锁PDF权限密码
  • HarmonyOS开发5.0 net 启动界面设置
  • 《近似线性可分支持向量机的原理推导》KKT(Karush-Kuhn-Tucker)条件 公式解析
  • 回溯法 | 无限个for循环?
  • 炫酷的登录框!(附源码)
  • 2024年10月25日Github流行趋势
  • Java性能调优与垃圾回收机制(4/5)
  • Python爬虫系列(一)
  • ios 项目升级极光SDK
  • 从零开始:AI制作PPT工具大比拼
  • 【算法】Kruskal最小生成树算法
  • 杨辉三角 II
  • 软件测试工程师晋升方向,你选对了吗?
  • 【电源优化】计及光伏电站快速无功响应特性的分布式电源优化配置方法
  • 【51单片机】第一个小程序 —— 点亮LED灯
  • 现代 C++ |C++ 基本概况 |Microsoft C/C++ 文档 学习笔记
  • ElasticSearch 在不同集群之间进行数据迁移
  • C++20新特性探索:概念(Concepts)与范围库(Ranges)
  • Springboot 整合 Java DL4J 实现文本分类系统
  • fio 一个 Linux 磁盘压测工具