3127.构造相同颜色的正方形

server/2024/11/15 1:49:24/

1.题目描述

给你一个二维 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' 。

2.解题思路

模拟题:遍历3*3矩阵中所有大小为2*2的子矩阵,并在遍历过程中统计每一个子矩阵中同一个颜色的块是否>=3个,如果满足这个条件,就说明可以改变 至多一个 格子的颜色,使得矩阵中存在一个 2 x 2 颜色完全相同的正方形

3.代码实现

java">class Solution {public boolean canMakeSquare(char[][] grid) {int[][] loc = {{0,0},{0,1},{1,0},{1,1}};for (int i = 0; i < loc.length; i++) {int cnt_b = 0, cnt_w = 0;int x = loc[i][0], y = loc[i][1];for (int j = 0; j < loc.length; j++) {int dx = loc[j][0];int dy = loc[j][1];if (grid[x+dx][y+dy] == 'B') {cnt_b += 1;} else {cnt_w += 1;}}if (cnt_b >= 3 || cnt_w >= 3) {return true;}}return false;}
}


http://www.ppmy.cn/server/109875.html

相关文章

Linux开放防火墙端口

目录 一、使用 firewalld 开启端口二、使用 iptables 开启端口 在 Kylin Linux 上&#xff0c;开启防火墙端口的步骤与其他 Linux 发行版类似。如果 Kylin Linux 使用 firewalld&#xff08;这在许多基于 CentOS 或 RHEL 的发行版上是默认的&#xff09;&#xff0c;你可以按照…

Spring高手之路22——AOP切面类的封装与解析

文章目录 1. AOP是如何收集切面类并封装的&#xff1f;2. Advisor 是什么&#xff0c;它是怎么构建的&#xff1f;2.1 什么是 Advisor2.2 Advisor 的构建&#xff08;源码分析时序图说明&#xff09; 3. TargetSource 的构建和作用3.1 TargetSource 的作用3.2 TargetSource 的构…

分片结果转发: _process_prompt ;if shard.start_layer != 0: 说明不是处理prompt的

目录 分片结果转发: _process_prompt if shard.start_layer != 0: 说明不是处理prompt的 参数 方法体 注意事项 EXO是串行方式的算力共享架构 分片结果转发: _process_prompt 这段代码定义了一个名为 _process_prompt 的异步方法,它属于某个类(尽管类的定义在这段…

基于yolov8的篮球计数检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv8的篮球计数检测系统是一种高效、精准的目标检测技术&#xff0c;专为篮球比赛中的篮球计数而设计。该系统利用YOLOv8这一先进的深度学习算法&#xff0c;通过实时分析比赛视频或图像&#xff0c;能够迅速且准确地识别并计数篮球的数量。 YOLOv8作为YO…

pythonnet-C#调用python脚本-含matplotlib+biopython

本地环境&#xff1a; win10&#xff0c;.NET Core 6&#xff0c;Python 3.9.13&#xff0c;pythonnet 3.0.3 测试的包&#xff1a;biopython 1.82&#xff0c;matplotlib 3.5.2 参考&#xff1a; GitHub - pythonnet/pythonnet: Python for .NET is a package that gives Py…

组播(UDP)

1.UDP协议 学习组播就必须先了解UDP。UDP(用户数据报协议&#xff0c;User Datagram Protocol)是一种传输层协议&#xff0c;属于TCP/IP协议族的一部分。它提供了一种简单而高效的方式来在网络上发送数据&#xff0c;但与TCP(传输控制协议)相比&#xff0c;UDP提供的服务具有不…

测试.net core服务项目调用dotNetify-Pulse监控性能的基本用法

微信公众号“DotNet讲堂”的文章《开源 .NET API 实时监控项目》介绍了开源实时日志及性能监控项目dotNetify-Pulse&#xff0c;在项目中引用简单&#xff0c;既能用其自带的监控页面&#xff0c;也支持按需配置监控页面。本文在之前创建的环境检测项目中添加并测试dotNetify-P…

Qt5.15.x之后的版本源码编译安装

在以下网站现在源文件 https://mirrors.tuna.tsinghua.edu.cn/qt/进入网站后选择以下路径 archive/qt/5.15/5.15.8/该路径下 single中是完整qt源码 submodules是各单个模块源码 一、安装基础依赖&#xff0c;此处需要慎重安装&#xff0c;因为分析部分Debian系统和麒麟系统和…