【每日一题】——矩阵相等判定

这篇具有很好参考价值的文章主要介绍了【每日一题】——矩阵相等判定。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🌏博客主页:PH_modest的博客主页
🚩当前专栏:每日一题
💌其他专栏:
🔴 每日反刍
🟢 读书笔记
🟡 C语言跬步积累
🌈座右铭:广积粮,缓称王!

一.题目描述

描述:

KiKi得到了两个n行m列的矩阵,他想知道两个矩阵是否相等,请你回答他。(当两个矩阵对应数组元素都相等时两个矩阵相等)。

输入描述:

第一行包含两个整数n和m,表示两个矩阵包含n行m列,用空格分隔。
从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n * m个数,表示第一个矩阵中的元素。
从n+2行到2n+1,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n * m个数,表示第二个矩阵中的元素。
1 < n,m < 10

输出描述:

一行,如果两个矩阵相等输出"Yes"并换行,否则输出"No"并换行。

示例1

输入:
2 2
1 2
3 4
1 2
3 4

输出:

Yes

二.思路分析

这题非常常规,只需要会使用循环就可以了。
注意: 但是有人可能会尝试使用指针来进行两个数组元素的比较,这样可能会出问题。例如下面的代码:

#include<stdio.h>
int main()
{
	int arr1[10][10] = { 0 };
	int arr2[10][10] = { 0 };
	int n = 0;
	int m = 0;
	scanf("%d %d", &n, &m);
	int i, j = 0;
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < m; j++)
		{
			scanf("%d", &arr1[i][j]);
		}
	}
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < m; j++)
		{
			scanf("%d", &arr2[i][j]);
		}
	}
	int flag = 1;
	int* p1 = arr1;
	int* p2 = arr2;
	for (i = 0; i < n * m; i++)
	{
		if (*p1 != *p2)
		{
			flag = 0;
			break;
		}
		else
		{
			p1++;
			p2++;
		}
	}
	if (flag == 0)
	{
		printf("No\n");
	}
	else
	{
		printf("Yes\n");
	}
	return 0;
}

【每日一题】——矩阵相等判定

结果应该是No,但输出的是Yes,这是什么原因呢?

【每日一题】——矩阵相等判定

当i=2时,我们以为指针会指向第二行第一个数,但实际上指向的是第一行第三个数,因此循环四次都是指向的第一行前四个数,所以输出的是Yes,而不是No。

三.代码展示

#include<stdio.h>
int main()
{
	int arr1[10][10] = { 0 };
	int arr2[10][10] = { 0 };
	int n = 0;
	int m = 0;
	scanf("%d %d", &n, &m);
	int i, j = 0;
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < m; j++)
		{
			scanf("%d", &arr1[i][j]);
		}
	}
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < m; j++)
		{
			scanf("%d", &arr2[i][j]);
		}
	}
	int flag = 1;
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < m; j++)
		{
			if (arr1[i][j] != arr2[i][j])
			{
				flag = 0;
				break;
			}
		}
		if (flag == 0)
		{
			break;
		}
	}
	if (flag == 0)
	{
		printf("No\n");
	}
	else
	{
		printf("Yes\n");
	}
	return 0;
}

最后:

每日一题系列旨在养成刷题的习惯,所以对代码的解释并不会特别详细,但足够引导大家写出来,选的题目都不会特别难,但也不是特别简单,比较考验大家的基础和应用能力,我希望能够将这个系列一直写下去,也希望大家能够和我一起坚持每天写代码。

在这里送大家一句话:广积粮,缓称王!文章来源地址https://www.toymoban.com/news/detail-405960.html

到了这里,关于【每日一题】——矩阵相等判定的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【LeetCode每日一题】——566.重塑矩阵

    矩阵 简单 566.重塑矩阵 在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据。 给你一个由二维数组 mat 表示的 m x n 矩阵,以及两个正整数 r 和 c ,分别表示想要的重构的矩阵的行数和列数。 重构后

    2024年02月14日
    浏览(46)
  • Python:每日一题之矩阵拼接

    问题描述 已知 3 个矩形的大小依次是 a1​×b1​,a2​×b2​ 和 a3​×b3​ 。 用这 3 个矩形能拼 出的所有多边形中, 边数最少可以是多少? 例如用 3×2 的矩形(用 A 表示)、 4×1 的矩形 (用 B 表示) 和 2×4 的矩 形(用 C 表示)可以拼出如下 4 边形。   例如用 3×2 的矩形 (用

    2024年02月11日
    浏览(38)
  • 力扣每日一题73:矩阵置零

    给定一个  m x n  的矩阵,如果一个元素为  0  ,则将其所在行和列的所有元素都设为  0  。请使用  原地  算法 。 示例 1: 示例 2: 提示: m == matrix.length n == matrix[0].length 1 = m, n = 200 -231 = matrix[i][j] = 231 - 1 进阶: 一个直观的解决方案是使用   O( m n )  的额外空间,但这并

    2024年02月06日
    浏览(37)
  • ( 数组和矩阵) 766. 托普利茨矩阵 ——【Leetcode每日一题】

    难度:简单 给你一个 m x n 的矩阵 matrix 。如果这个矩阵是托普利茨矩阵,返回 true ;否则,返回 false 。 如果矩阵上每一条由左上到右下的对角线上的元素都相同,那么这个矩阵是 托普利茨矩阵 。 示例 1: 输入:matrix = [[1,2,3,4],[5,1,2,3],[9,5,1,2]] 输出:true 解释: 在上述矩阵

    2024年02月02日
    浏览(39)
  • 【C语言】每日一题(杨氏矩阵查找数)

    既然在杨氏矩阵中查找数,那什么是杨氏矩阵呢? 矩阵的每行从 左到右是递增 的,矩阵从 上到下是递增 的。 例如: 看到这题我们马上就可以想到 遍历一遍数组 ,但无疑这是效率最低的算法,就不展开详细来讲了 那还有什么样的算法呢? 我们发现这歌矩阵是特殊的: 左

    2024年02月09日
    浏览(40)
  • 【每日一题】1572. 矩阵对角线元素的和

    给你一个正方形矩阵 mat,请你返回矩阵对角线元素的和。 请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。 示例 1: 示例 2: 示例 3: 提示: n == mat.length == mat[i].length 1 = n = 100 1 = mat[i][j] = 100 思路:主对角线i=j,副对角线i+j=n-1。

    2024年02月13日
    浏览(52)
  • 每日一题 第五十七期 洛谷 统计子矩阵

    给定一个 N × M N times M N × M 的矩阵 A A A ,请你统计有多少个子矩阵 (最小 1 × 1 1 times 1 1 × 1 , 最大 N × M ) N times M) N × M ) 满足子矩阵中所有数的和不超过给定的整数 K K K 。 第一行包含三个整数 N , M N, M N , M 和 K K K 。 之后 N N N 行每行包含 M M M 个整数, 代表矩阵 A A A 。 一

    2024年04月23日
    浏览(39)
  • LeetCode·每日一题·2679. 矩阵中的和·排序

    作者:小迅 链接:https://leetcode.cn/problems/sum-in-a-matrix/solutions/2330084/pai-xu-zhu-shi-chao-ji-xiang-xi-by-xun-g-a3gw/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。     题意 - 给定一个二维数组,每次取每一行的最大值构成一列,在该列

    2024年02月12日
    浏览(37)
  • 【LeetCode每日一题】——766.托普利茨矩阵

    矩阵 简单 766.托普利茨矩阵 给你一个 m x n 的矩阵 matrix 。如果这个矩阵是托普利茨矩阵,返回 true ;否则,返回 false 。 如果矩阵上每一条由左上到右下的对角线上的元素都相同,那么这个矩阵是 托普利茨矩阵 。 示例 1: 输入:matrix = [[1,2,3,4],[5,1,2,3],[9,5,1,2]] 输出:true 解释

    2024年02月14日
    浏览(41)
  • 【每日一题】1253. 重构 2 行二进制矩阵

    给你一个 2 行 n 列的二进制数组: 矩阵是一个二进制矩阵,这意味着矩阵中的每个元素不是 0 就是 1。 第 0 行的元素之和为 upper。 第 1 行的元素之和为 lower。 第 i 列(从 0 开始编号)的元素之和为 colsum[i],colsum 是一个长度为 n 的整数数组。 你需要利用 upper,lower 和 colsu

    2024年02月12日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包