【牛客刷题专栏】0x0C:JZ4 二维数组中的查找(C语言编程题)

news2024/11/15 22:55:14

前言

  • 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失
  • 个人刷题练习系列专栏:个人CSDN牛客刷题专栏。 题目来自:牛客/题库 / 在线编程 / 剑指offer:
    在这里插入图片描述

目录

  • 前言
  • 问题描述:
  • 举例:
  • 解法思路:
  • 代码结果:
  • 结束语


问题描述:

  • 在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

[
[1,2,8,9],
[2,4,9,12],
[4,7,10,13],
[6,8,11,15]
]

  • 给定 target = 7,返回 true。
  • 给定 target = 3,返回 false。
  • 数据范围:矩阵的长宽满足0≤n,m≤500,矩阵中的值满足0≤val≤10^9
  • 数据范围:0≤n≤10000
  • 进阶:时间复杂度O(1),空间复杂度O(n+m)

举例:

//示例1:
//输入:
7,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]
//返回值:
true
//说明:存在7,返回true  
//==========================
//示例2:
//输入:
1,[[2]]
//返回值:
false
//==========================
//示例3:
//输入:
3,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]
//返回值:
false
//说明:不存在3,返回false    

解法思路:

  • 例题如图所示,array[iRow][iCol],target = 7

从右上角array[0][3]开始查找,如果比target大,则iCol–
第二步与array[0][2]开始对比,比target大,继续iCol–
第三步与array[0][1]开始对比,比target小,则iRow++
第四步与array[1][1]开始对比,比target小,则iRow++
第五步与array[2][1]开始对比,等于target,返回true

在这里插入图片描述


代码结果:

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param target int整型 
 * @param array int整型二维数组 
 * @param arrayRowLen int array数组行数
 * @param arrayColLen int* array数组列数
 * @return bool布尔型
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
bool Find(int target, int** array, int arrayRowLen, int* arrayColLen ) {
    // write code here
    int iRow = 0;
    int iCol = 0;
    bool bIsFind = false;
    if (NULL == array)
        return false;
    iCol = *arrayColLen - 1;
    iRow = 0;
    while (iCol >= 0 && iRow < arrayRowLen)
    {
        if (target == array[iRow][iCol])
        {
            bIsFind = true;
            break;
        }
        else if (target <= array[iRow][iCol])
        {
            iCol--;
        }
        else{
            iRow++;
        }
    }
    return bIsFind;
} 


结束语

  • 以上就是该C语言编程题的内容。可以在牛客尝试刷几道题目来练习实践。牛客网刷题(点击可以跳转),可以尝试注册使用。
  • 题目来自:牛客/题库 / 在线编程 / 剑指offer:
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/360371.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Django框架之模板过滤器

过滤器 语法如下: 使用管道符号|来应用过滤器&#xff0c;用于进行计算、转换操作&#xff0c;可以使用在变量、标签中。如果过滤器需要参数&#xff0c;则使用冒号:传递参数。 变量|过滤器:参数列举几个如下&#xff1a; safe&#xff0c;禁用转义&#xff0c;告诉模板这个变…

大数据Hadoop教程-01大数据导论与Linux基础

目录 01、大数据导论 02、Linux操作系统概述 P007 P008 P009 P010 P011 P012 P013 P014 P015 P016 P017 01、大数据导论 企业数据分析方向 现状分析&#xff08;分析当下的数据&#xff09;&#xff1a;现阶段的整体情况&#xff0c;各个部分的构成占比、发展、变…

C++空指针和野指针

空指针&#xff1a;指针被赋值为空 例如&#xff1a; int* p nullptr;int* p NULL; 空指针指向的地址是00000000&#xff0c;但空指针不可以解引用 野指针&#xff1a;指针指向了不可控的位置 例如&#xff1a; 未初始化 int* p; //野指针 越界访问 int intArr[5]{0, 1, …

Echarts+大屏

先放上我做的大屏吧&#xff0c;做的不是很好看&#xff0c;希望大家能见谅。 一、实验目的 理解大数据可视化的原理和方法掌握ECharts可视化的原理、步骤和效果掌握使用D3读取数据的方法 二、实验任务与要求 通过网店运营的销售数据&#xff0c;分别从各月的销售情况、各产品…

【1】linux命令每日分享——mkdir创建目录

大家好&#xff0c;这里是sdust-vrlab&#xff0c;Linux是一种免费使用和自由传播的类UNIX操作系统&#xff0c;Linux的基本思想有两点&#xff1a;一切都是文件&#xff1b;每个文件都有确定的用途&#xff1b;linux涉及到IT行业的方方面面&#xff0c;在我们日常的学习中&…

剑指offer-消失的数字、数组中出现的次数

消失的数字 解法一&#xff1a;求和相减 假设nums为[0,1,2,4],消失的数字为3&#xff0c;完整的数组应该是[0,1,2,3,4]&#xff0c;则sum101247,sum20123410&#xff0c;我们很容易发现 sum2-sum1 01234 - 0124 3&#xff0c;即为消失的数字。因此&#xff0c;我们可以采用先…

国内有哪些值得一去的通信类博物馆?

众所周知&#xff0c;博物馆是收藏、展示和研究历史文物的地方。参观博物馆&#xff0c;既可以回顾历史往事&#xff0c;也可以学习知识。那么&#xff0c;作为通信人&#xff0c;你知道国内有哪些通信领域的博物馆吗&#xff1f;今天&#xff0c;就让小枣君给大家介绍介绍。█…

没有基础学习编程Python难学吗?

你听说过Python吗&#xff1f;如果是这样&#xff0c;你有没有想过它是否很难学习&#xff1f;在本文中&#xff0c;我将告诉您什么是 Python 以及为什么在 2023 年学习它是一个好主意。Python 是一种计算机编程语言&#xff0c;广泛用于 Web 开发、科学计算、数据分析、人工智…

ChatGPT的API接口的模型有多少种?这些模型都有什么功能或者在应用场景上有什么区别?【模型介绍使用与调用接口方法】

OpenAI 的 API 接口提供了多个 GPT-3 模型,每个模型针对不同的应用场景和任务进行了优化。以下是目前可用的 GPT-3 模型: davinci: 这是最大和最全面的模型,具有最高的准确性和灵活性,用于多种自然语言处理任务,如文本生成、对话系统、翻译等。 curie: 这个模型比 davin…

MySQL:想实现sql语句进行批量删除数据库或表,而引发的熬夜探究

因为在自测过程中&#xff0c;创建了很多数据库&#xff0c;一个个手动删除属实有点对不起程序员这个身份&#xff0c;那么有没有简单的sql语句操作来进行批量删除数据库呢&#xff1f;于是便有了本篇文章 上面图片是AI创作&#xff0c;未经允许&#xff0c;不可商用哦&#xf…

谷粒学苑第一天

谷粒学苑第一天 官方文档&#xff08;多看看&#xff09;&#xff1a;https://mybatis.org/mybatis-3/zh/sqlmap-xml.html#Auto-mapping 问题1&#xff1a;新建springboot没有pom文件&#xff08;已解决&#xff09; 修改pom文件 有这个web依赖&#xff0c;properties才会是小…

CRM外呼系统

对于如今企业来讲&#xff0c;电销依然是企业进行销售的主要手段&#xff0c;因其成本低&#xff0c;覆盖率较广&#xff0c;时间获客较短。运用公司自动化信息管理技术和专业化运行平台&#xff0c;完成公司产品的推介、咨询、报价以及产品成交条件确认等主要营销过程的业务 …

yolov5源码解读--数据处理模块

yolov5源码解读--数据处理模块加载数据读取图片加载标签马赛克数据增强图片标签其他的数据增强变图像变标签__getitem__构建Batch加载数据 create_dataloader 跳转到datasets.py文件中&#xff0c;可以看到支持输入的文件类型非常丰富。。 回归正题 跳转LoadImagesAndLabel…

小程序(九)后端 签到1

文章目录一、考勤时间表设计1、表设计二、缓存考勤时间1、mapper.xml2、常量封装类三、封装检测当天是否可以签到1、为什么要检测是否可以签到&#xff1f;2、怎么判断当天是工作日还是节假日&#xff1f;3、封装持久层代码1&#xff09;查询特殊休息日2&#xff09;查询特殊工…

jjava企业级开发-01

一、Spring容器演示 采用Spring配置文件管理Bean 1、创建Maven项目 修改项目的Maven配置 2、添加Spring依赖 在Maven仓库里查找Spring框架&#xff08;https://mvnrepository.com&#xff09; 同上添加其他依赖 <?xml version"1.0" encoding"UTF-8…

stm32f407探索者开发板(十八)——串口通信实验讲解(USART_RX_STA流程图详解)

文章目录一、uart_init&#xff08;串口初始化&#xff09;二、USART1_IRQHandler&#xff08;串口1中断服务程序&#xff09;三、main.c&#xff08;主函数&#xff09;四、关于printf的支持一、uart_init&#xff08;串口初始化&#xff09; 就是根据上一篇的一样的步骤&…

数据结构之树

树是一种数据结构 包括&#xff1a; 根节点 度&#xff1a;每一个节点的子节点个数 左子节点&#xff1a;左下方的节点 右子节点&#xff1a;右下方的节点 左子树 右子树 树的内部结构 二叉查找树 又称二叉搜索树或者二叉排序树 特点 每一个节点最多只有两个节点 任…

【强化学习】解决gym安装Atari2600环境gym[atari,accept-rom-license] RuntimeError 无法下载Roms的问题

先上Roms.tar.gz安装地址&#xff1a;Roms.tar.gz 以下内容是解决问题的思路&#xff0c;如果已经完全知道问题原因可以直接跳过 安装gym[accept-rom-license]时会出现安装失败的情况: 先是卡在&#xff1a;Building wheel for AutoROM.accept-rom-license 然后是显示安装失败…

非常优秀的网站设计案例,设计师必备

厚积才能薄发&#xff0c;一个优秀的设计师的天性一定是想要获得更多网站设计灵感&#xff0c;擅于为新项目寻找创意切入点、搜索设计参考资源、最新的设计趋势。今天为大家带来了一组免费可商用的网站设计案例&#xff0c;通过这些网站设计案例&#xff0c;你可以获得&#xf…

To prevent a memory leak, the JDBC Driver has been forcibly unregistered.

java项目发布到kubernetes集群中&#xff0c;报错 SEVERE: The web application [] registered the JDBC driver [com.alibaba.druid.proxy.DruidDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has …