当前位置: 首页 > news >正文

【C语言每日一题】杨氏矩阵(源码以及改进源码)

【C语言每日一题】—— 杨氏矩阵😎😎😎

目录

💡前言🌞: 

 💛杨氏矩阵题目💛 

💪 解题思路的分享💪 

 😊题目源码的分享😊

 👉 本菜鸡&总结 👈


😎博客昵称:陈大大陈

😊座右铭:所谓觉悟,就是在漆黑的荒野上开辟出一条理当前进的光明大道。

😋博主简介:一名热爱C/C++和算法等技术,喜欢运动,爱胡思乱想却胸怀大志的小博主!

😚博主&唠嗑:早中晚安!😄各位CSDN的朋友!😄我是博客新人陈大大陈,希望我的文章能为你带来帮助!欢迎大家在评论区畅所欲言!也希望大家多多为我提出您宝贵的建议!😘如果觉得我写的不错的话还请点个赞和关注哦~😘😘😘

 

💡前言🌞: 

大伙们好!😄又到了小陈每日一题的时间了~ 😋😋😋今天也带来了十分有趣的题目!🥰🥰🥰用C语言实现——杨氏矩阵~这个题目很有意思,新颖的同时又很值得思考!我现在迫不及待地要和大家分享~!😄🤗🤗

 💛杨氏矩阵题目💛 

💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡

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

要求:时间复杂度小于O(N);

💪 解题思路的分享💪 

  • 如果没有时间复杂度小于O(N)的条件,我们就可以用两个循环来遍历数组轻易地解决问题,但是题目给出了要求,我们就另寻出路🤗。
  • 通过观察题目,我们发现,在杨氏矩阵里,矩阵的每行从左到右递增的,所以右上角的元素是一行中最大,一列中最小,而左下角的元素是一行中最小,一列中最大。
  • 知道这个信息之后,我们就可以从右上角或者左下角来查找
  • 从右上角开始查找时,如果所查找的数字大于右上角的元素,那么就说明这一行的元素没有比所查找元素大的,我们就可以直接跳过这一行。
  • 而如果右上角的元素比我们要查找的元素大,我们就可以去掉右上角元素所在的这一列。然后依然找右上角的元素继续和要查找的元素与比较。
  • 我们通过这样的算法,每次去掉一行或者一列,写出的代码效率是高于遍历数组的,也满足时间复杂度小于O(N)的要求。

 😊题目源码的分享😊

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>int findnum(int a[][3], int x, int y, int f) //第一个参数的类型需要调整
{int i = 0, j = y - 1;//从右上角开始遍历while (j >= 0 && i < x){if (a[i][j] < f) //比我大就向下{i++;}else if (a[i][j] > f) //比我小就向左{j--;}else{return 1;}}return 0;
}int main()
{int a[][3] = { {1, 3, 5},{3, 5, 7},{5, 7, 9} }; //一个示例if (findnum(a, 3, 3, 2)){printf("找到了!\n");}else{printf("没找着!\n");}return 0;
}

 👉 本菜鸡&总结 👈

本篇文章旨在分享C语言详解【C语言每日一题】——杨氏矩阵。🤠希望我的文章能够让大家有所收获!😋😋😋大佬们如果对我的文章有什么建议,或者认为那里写的不好,请在评论区写下您宝贵的意见!😀如果觉得我写的不错的话还请点个赞和关注哦~我会持续输出编程的知识的!🌞🌞🌞 

http://www.lryc.cn/news/22444.html

相关文章:

  • JavaScript 面向对象【快速掌握知识点】
  • Qt——自定义Model
  • 用 .NET 启动你的 DJI Ryze Tello 无人机
  • sed 功能详解
  • 整数二分思路详解
  • 基于java的进销库存管理系统(Vue+Springboot+Mysql)前后端分离项目,附万字课设论文
  • 手动添加 Grub 启动项
  • 工人搬砖-课后程序(JAVA基础案例教程-黑马程序员编著-第八章-课后作业)
  • 深度学习中backbone、head、neck等概念
  • 华为OD机试用Python实现 -【Linux 发行版的数量】(2023-Q1 新题)
  • Http报文解析
  • Vue下载安装步骤的详细教程(亲测有效) 2 安装与创建默认项目
  • TIA博途Wincc中自定义配方画面的具体方法示例
  • Java反射系列--方法大全
  • LeetCode 169. 多数元素
  • 来了,metaIPC1.0
  • WireShark如何进行USB包协议分析
  • 蒙特卡洛随机模拟
  • Android从屏幕刷新到View的绘制(三)之Handler异步消息与同步屏障
  • 最新版axios@1.3.x取消请求-AbortController-初体验-番茄出品
  • Git的简述
  • webpack实战,手写loader和plugin
  • STM32CubeMX按键模块化 点灯
  • C#专栏目录(长期更新)
  • BurpSuite配置抓取HTTPS数据包
  • 图片转base64格式返回给前端,前端如何展示?
  • C++入门知识【超详解】
  • 零基础、非计算机系学Python该如何上手?
  • 关于 vue3 模板引用
  • Redis | 安装Redis和启动Redis服务