【C语言】每日一题,快速提升(2)!

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

🔥博客主页🔥:【 坊钰_CSDN博客 】

欢迎各位点赞👍评论✍收藏⭐

【C语言】每日一题,快速提升(2)!,C语言每日一题,c语言,算法,开发语言

 题目:杨氏矩阵

有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个数字是否存在

解答:

1. 我们仔细分析,不难发现,对于杨氏矩阵老说,右上角和左下角的元素是有特点的。

2. 右上角的元素是一行中最大的,一列中最小的。

3. 左下角的元素是一行中最小的,是一列中最大的。所以我们可以从右上角或者左下角开始查找。

比如:从右上角开始查找的时候,右上角的元素比我们要查找元素小,我们就可以去掉右上角元素所在的这一行;右上角的元素比我们要查找的元素大,我们就可以去掉右上角元素所在的这一列。然后依然找右上角的元素继续和要查找的元素与比较。这样每一次比较去掉一行或者去掉一列;

代码:文章来源地址https://www.toymoban.com/news/detail-855646.html

#include <stdio.h>

int find(int arr[][3], int x, int y, int key) //第一个参数的类型需要调整
{
	int i = 0, j = y - 1; //从右上角开始遍历
	while (j >= 0 && i < x)
	{
		if (arr[i][j] < key) //比我大就向下
		{
			i++;
		}
		else if (arr[i][j] > key) //比我小就向左
		{
			j--;
		}
		else
		{
			return 1;
		}
	}
	return 0;
}

int main()
{
	int arr[][3] = { {1, 2, 3},{4, 5, 6}, {7, 8, 9} }; //一个示例

	if (find(arr, 3, 3, 5))
	{
		printf("It has been found!\n");
	}
	else
	{
		printf("It hasn't been found!\n");
	}

	return 0;
}

到了这里,关于【C语言】每日一题,快速提升(2)!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • C语言每日一题:16:数对。

    1.x,y均不大于n,就是小于等于n。 2.x%y大于等于k。 3.一般的思路使用双for循环去遍历每一对数。 代码实现: 我们的运行结果是 我们在vs2022下测试代码的结果是正确的什么说明我们的代码思路是没有问题可以计算出结果但是呢,题目要求时间限制是1s,在vs运行出结果至少用了

    2024年02月13日
    浏览(25)
  • C语言每日一题—魔幻矩阵

    2024年04月17日
    浏览(22)
  • C语言每日一题(10):无人生还

    文章主题:无人生还🔥 所属专栏: C语言每日一题 📗 作者简介:每天不定时更新C语言的小白一枚,记录分享自己每天的所思所想😄🎶 个人主页: [₽]的个人主页 🏄🌊 最近刚刷到过一个有关逻辑判断的猜凶手的题目,于是想着能不能将其带入到无人生还 1 的背景中去重

    2024年02月07日
    浏览(38)
  • C语言每日一题:15:寻找峰值。

    题目链接

    2024年02月13日
    浏览(25)
  • 算法|每日一题|H 指数|二分

    原题地址: 力扣每日一题:H 指数 给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。 根据维基百科上 h 指数的定义:h 代表“高引用次数” ,一名科研人员的 h 指数 是指他(她)至少发表了 h 篇论文,并且每

    2024年02月08日
    浏览(29)
  • 【C语言每日一题】10. 超级玛丽游戏

    题目来源:http://noi.openjudge.cn/ch0101/10/ 总时间限制: 1000ms 内存限制: 65536kB 超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。 无。 如样例所示。

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

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

    2024年02月09日
    浏览(29)
  • 【C语言蓝桥杯每日一题】——排列字母

    TOC     😎博客昵称:博客小梦 😊最喜欢的座右铭:全神贯注的上吧!!! 😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主! 😘博主小留言:哈喽! 😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话

    2023年04月09日
    浏览(32)
  • 算法每日一题:赎金信 | 字符和整数

    hello,大家好,我是星恒 今天给大家带来的题目是一道简单题目,主要帮大家复习一下字符串和字符的相关操作 给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以,返回 true ;否则返回 false 。 magazine 中的每个字符只能在 ransom

    2024年01月21日
    浏览(31)
  • 每日一题之常见的排序算法

    排序是最常用的算法,常见的排序算法有冒泡排序、选择排序、插入排序、快速排序、希尔排序和归并排序。除此之外,还有桶排序、堆排序、基数排序和计数排序。 1、冒泡排序 冒泡排序就是把小的元素往前放或大的元素往后放,比较的是相邻的两个元素。 时间复杂度:

    2024年02月13日
    浏览(30)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包