2024年4月13日美团春招实习试题【第一题:好子矩阵】-题目+题解+在线评测【模拟】

ops/2024/9/20 4:00:57/ 标签: 矩阵, 算法, c++

2024年4月13日美团春招实习试题【第一题:好子矩阵】-题目+题解+在线评测【模拟】

  • 题目描述:
    • 输入描述
    • 输出描述
    • 样例
  • 解题思路一:模拟
  • 解题思路二:思路二
  • 解题思路三:直接判断

题目描述:

塔子哥定义一个矩阵是”好矩阵”,当且仅当该矩阵所有元素都相同。 现在塔子哥拿到了一个矩阵,她想知道该矩阵有多少2*2的子知阵是好矩阵?

输入描述

第一行输入两个正整数m和n,代表输入矩阵的行数和列数。

接下来的n行,每行输入m个正整数a(i,j),代表塔子哥拿到的矩阵

1<=n,m<=100

1 < = a ( i , j ) < = 1 0 9 1<=a_{(i,j)}<=10^9 1<=a(i,j)<=109

输出描述

2*2好子矩阵的数量

样例

输入

3 3
1 2 1
1 1 1
1 1 3

输出

1

说明

只有左下角一个好子矩阵

OJ链接:
https://codefun2000.com/p/P1819

解题思路一:模拟

m, n = map(int, input().split())
matrix = [[0] * n for _ in range(m)]
for i in range(m):row = list(map(int, input().split()))matrix[i] = row
def goodMatrix(matrix, x, y):t = matrix[x][y]if t == matrix[x+1][y] and t == matrix[x+1][y+1] and t == matrix[x][y+1]:return Truereturn Falsecnt = 0
for i in range(m-1):for j in range(n-1):if goodMatrix(matrix, i, j):cnt += 1
print(cnt)

时间复杂度:O(nm)
空间复杂度:O(1)

解题思路二:思路二

import collectionsn, m = map(int, input().split())
mat = list()
for _ in range(n):mat.append(list(map(int, input().split())))bad_start = collections.defaultdict(list)
ret = 0for i in range(n-1):for j in range(m-1):if j not in bad_start[i] and mat[i][j+1] == mat[i][j]:if mat[i+1][j+1] != mat[i][j+1]:bad_start[i].append(j+1)else:if mat[i+1][j] != mat[i+1][j+1]:bad_start[i+1].append(j)else:ret += 1print(ret)

时间复杂度:O(nm)
空间复杂度:O(1)

解题思路三:直接判断

n, m = map(int, input().split())
g = [list(map(int, input().split())) for _ in range(n)]
ans = 0
for i in range(n - 1):for j in range(m - 1):if g[i][j] == g[i + 1][j] and g[i + 1][j] == g[i][j + 1] and g[i][j + 1] == g[i + 1][j + 1]:ans += 1
print(ans)# python
n,m = map(int,input().split())
matrix=[]
for _ in range(n):row=list(map(int, input().split()))matrix.append(row)
count=0
for i in range(n-1):for j in range(m-1):if matrix[i][j] == matrix[i+1][j]==matrix[i][j+1]==matrix[i+1][j+1]:count+=1
print(count)# java
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int m = scanner.nextInt();int[][] g = new int[n][m];for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {g[i][j] = scanner.nextInt();}}int ans = 0;for (int i = 0; i < n - 1; i++) {for (int j = 0; j < m - 1; j++) {if (g[i][j] == g[i + 1][j] && g[i + 1][j] == g[i][j + 1] && g[i][j + 1] == g[i + 1][j + 1]) {ans++;}}}System.out.println(ans);scanner.close();}
}# c++
#include <iostream>
#include <vector>using namespace std;int main() {int n, m;cin >> n >> m;vector<vector<int>> g(n, vector<int>(m));for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {cin >> g[i][j];}}int ans = 0;for (int i = 0; i < n - 1; i++) {for (int j = 0; j < m - 1; j++) {if (g[i][j] == g[i + 1][j] && g[i + 1][j] == g[i][j + 1] && g[i][j + 1] == g[i + 1][j + 1]) {ans++;}}}cout << ans << endl;return 0;
}

时间复杂度:O(nm)
空间复杂度:O(1)


http://www.ppmy.cn/ops/6918.html

相关文章

Qwen1.5大语言模型微调实践

在人工智能领域&#xff0c;大语言模型&#xff08;Large Language Model&#xff0c;LLM&#xff09;的兴起和广泛应用&#xff0c;为自然语言处理&#xff08;NLP&#xff09;带来了前所未有的变革。Qwen1.5大语言模型作为其中的佼佼者&#xff0c;不仅拥有强大的语言生成和理…

05节-51单片机-模块化编程

1.两种编程方式的对比 传统方式编程&#xff1a; 所有的函数均放在main.c里&#xff0c;若使用的模块比较多&#xff0c;则一个文件内会有很多的代码&#xff0c;不利于代码的组织和管理&#xff0c;而且很影响编程者的思路 模块化编程&#xff1a; 把各个模块的代码放在不同的…

Docker构建Golang项目常见问题

Docker构建Golang项目常见问题 1 Dockerfile1.1 dockerfile报错&#xff1a;failed to read expected number of bytes: unexpected EOF1.2 go mod tidy: go.mod file indicates go 1.21, but maximum supported version is 1.171.3 是否指定启动文件问题 2 构建及部署 1 Docke…

双向链表的实现(详解)

目录 前言初始化双向链表的结构为双向链表的节点开辟空间头插尾插打印链表尾删头删查找指定位置之后的插入删除pos节点销毁双向链表 前言 链表的分类&#xff1a; 带头 不带头 单向 双向 循环 不循环 一共有 (2 * 2 * 2) 种链表 带头指的是&#xff1a;带有哨兵位节点 哨兵位&a…

MyCat 数据库中间件

一、介绍 1、单数据库进行数据存储的问题&#xff1a; IO瓶颈&#xff1a;热点数据太多&#xff0c;数据库缓存不足以容纳这些热点数据&#xff0c;产生大量磁盘IO&#xff0c;效率较低。 CPU瓶颈&#xff1a;排序、分组、连接查询、聚合统计等SQL会耗费大量的CPU资源。 2、…

【Linux 开发第一篇】如何在安装中完成自定义配置分区

安装配置自定义配置分区 在安装Centos的过程中&#xff0c;我们可以在安装位置部分手动配置分区 选择我要配置分区&#xff0c;点击完成&#xff1a; 我们自动分区分为三个分区&#xff1a;boot分区&#xff08;引导分区&#xff09;&#xff0c;swap&#xff08;交换分区&…

解决Git 不相关的分支合并

可以直接调到解决方案,接下来是原因分析和每步的解决方式 问题原因: 我之前在自己本机创建了一个初始化了Git仓库,后来有在另一个电脑初始化仓库,并没有clone自己在本机Git远程仓库地址,导致Git历史版本不相关 错误信息 From https://gitee.com/to-uphold-justice-for-other…

lv_table

通过点击lv_table的某一行来选中这一行&#xff0c;以及通过点击另外创建的按钮来删除选中的这一行数据。在table_event_cb回调函数中&#xff0c;我们通过检测点击事件发生的行和列来确定被点击的行&#xff0c;然后在按钮的事件处理器btn_event_cb中&#xff0c;根据之前保存…

Linux命令学习—DHCP 服务器

1.1、DHCP 服务器 ①、DHCP&#xff08;dynamic host configure protocol&#xff09;动态主机配置协议 最大的功能就是向客户端提供 TCP/IP 信息&#xff0c;使用的是 UDP:67 端口 ②、手动设定适合&#xff1a;适用小型网络 ③、手动输入 IP 地址和自动获取比较优缺点 ④…

如何在群晖NAS部署office系统办公服务并实现无公网IP远程编辑文件

文章目录 本教程解决的问题是&#xff1a;1. 本地环境配置2. 制作本地分享链接3. 制作公网访问链接4. 公网ip地址访问您的分享相册5. 制作固定公网访问链接 本教程解决的问题是&#xff1a; 1.Word&#xff0c;PPT&#xff0c;Excel等重要文件存在本地环境&#xff0c;如何在编…

RS232、RS485、RS422、TTL、CAN各自的区别

目录 一&#xff1a;工业串口通信标准RS232、RS485、RS422的区别 第一个区别、硬件管脚接口定义不同 第二个区别、工作方式不同 第三个区别、通信方式不同 第四个区别&#xff0c;逻辑特性不同 第五个区别、抗干扰性、传输距离和传输速率也不同 二&#xff1a;RS232、RS…

【剪映专业版】06音频和图片格式

视频课程&#xff1a;B站有知公开课【剪映电脑版教程】 音频格式 最常见格式&#xff1a;MP3和WAV 转换工具&#xff1a;在线转换或者格式工厂&#xff08;免费&#xff0c;支持音频、视频、图片、文档等转换&#xff0c;好工具&#xff09; 图片格式

Git | Git基本命令

Git | Git基本操作 文章目录 Git | Git基本操作一、创建Git本地仓库1、创建Git仓库2、配置Git3、理解工作区、暂存区、版本库关系 二、添加、修改与查看添加文件查看历史提交记录 修改文件查看.git文件 三、版本回退版本回退撤销修改尚未add已add但还未commit已add并commit 删除…

[Leetcode]用栈实现队列

用栈实现队列&#xff1a; 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作&#xff08;push、pop、peek、empty&#xff09;&#xff1a; 实现 MyQueue 类&#xff1a; void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元…

Android开发学习(1)--楔子

没头没尾, 也不是技术文章, 纯纯的记录. 不能说之前做过Android项目, 只能说参与过维护, 别人写的代码, 在上面改一改, 还是可以的, 当时的android sdk 的版本, 还是在android-22 在Eclipse上, 通过ADT开发的, 打包还是用的Ant 昨天要安装之前的应用, 就去网站下载了apk, …

centos 6设置yum源遇到的问题

由于centos6已经不被支持了&#xff0c;直接抄人家的命令是不行的 比如执行这些&#xff08;是wget或者是curl按照自己的改&#xff09; wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo yum makecache会报错 需要到对应的镜像源网…

【Linux】系统安全及应用

目录 一、账号安全基本措施 1.系统账号清理 2.密码安全控制 3.历史命令安全管理 4.限制su切换用户 1&#xff09;将信任的用户加入到wheel组中 2&#xff09;修改su的PAM认证配置文件 5.ssh远程登录输入三次密码错误则锁定用户 二、Linux中的PAM安全认证 1.su命令的…

游戏测试之常见控制技能(下)

备注&#xff1a;未经博主允许禁止转载 个人笔记&#xff08;整理不易&#xff0c;有帮助&#xff0c;收藏点赞评论&#xff0c;爱你们&#xff01;&#xff01;&#xff01;你的支持是我写作的动力&#xff09; 笔记目录&#xff1a;学习笔记目录_pytest和unittest、airtest_w…

直播运营学习内容 沈阳直播运营培训 沈阳新媒体运营培训

1&#xff1a;直播运营概述 直播行业发展趋势 直播运营的定义和重要性 直播平台选择与特点分析 2&#xff1a;直播内容策划 目标受众分析 直播内容类型与形式 直播节目策划与制作 3&#xff1a;直播营销推广 直播营销策略与方法 社交媒体整合营销 直播活动策划与执行 4&…

汽车充电桩充电效率的四大决定因素

随着电动汽车的快速普及&#xff0c;交流充电桩作为电动汽车的充电基础设施&#xff0c;其充电效率受到了广泛的关注。接下来&#xff0c;我们将深入探讨交流充电桩的充电效率&#xff0c;包括充电效率的定义、影响因素以及提升方法。 充电效率的定义 交流充电桩的充电效率指的…