泰安中商网络做的网站怎么进入,discuz 做网站可以吗,色彩学习网站,wordpress设置谷歌验证2024年4月13日美团春招实习试题【第一题:好子矩阵】-题目题解在线评测【模拟】 题目描述#xff1a;输入描述输出描述样例 解题思路一#xff1a;模拟解题思路二#xff1a;思路二解题思路三#xff1a;直接判断 题目描述#xff1a;
塔子哥定义一个矩阵是”好矩阵”题解在线评测【模拟】 题目描述输入描述输出描述样例 解题思路一模拟解题思路二思路二解题思路三直接判断 题目描述
塔子哥定义一个矩阵是”好矩阵”当且仅当该矩阵所有元素都相同。 现在塔子哥拿到了一个矩阵她想知道该矩阵有多少2*2的子知阵是好矩阵?
输入描述
第一行输入两个正整数m和n代表输入矩阵的行数和列数。
接下来的n行每行输入m个正整数a(i,j)代表塔子哥拿到的矩阵。
1n,m100 1 a ( i , j ) 1 0 9 1a_{(i,j)}10^9 1a(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[x1][y] and t matrix[x1][y1] and t matrix[x][y1]: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][j1] mat[i][j]:if mat[i1][j1] ! mat[i][j1]:bad_start[i].append(j1)else:if mat[i1][j] ! mat[i1][j1]:bad_start[i1].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):rowlist(map(int, input().split()))matrix.append(row)
count0
for i in range(n-1):for j in range(m-1):if matrix[i][j] matrix[i1][j]matrix[i][j1]matrix[i1][j1]:count1
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 vectorusing namespace std;int main() {int n, m;cin n m;vectorvectorint g(n, vectorint(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)