20杨氏矩阵查找

   问题描述:在一个m行n列二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
    例如下面的二维数组就是每行、每列都递增排序。如果在这个数组中查找数字6,则返回true;如果查找数字5,由于数组不含有该数字,则返回false。

    解法

    定位法,时间复杂度O(m+n)。首先直接定位到最右上角的元素,比要找的数(6)大就往左走,比要找数(6)的小就往下走,直到找到要找的数字(6)为止,如下图所示:

代码如下:

int findnum(inta[LINE][COL], int num)

{

         int i, j;

         i = 0;

         j = COL - 1;

 

         while(i < LINE && j >= 0)

         {

                  if(a[i][j] == num)

                          return true;

 

                  if(a[i][j] > num)        j--;

                  else          i++;

         }

         return false;

}

 

(http://blog.csdn.net/v_july_v/article/details/7085669)

转载于:https://www.cnblogs.com/gqtcgq/p/7247167.html

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

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

相关文章

玩一玩微信公众号开发(一) 接入系统

一开始我准备学一学微信开发。后来看了一下文档&#xff0c;需要自己搭服务器进行接口对调。有点麻烦所以就没继续学下去。现在学习过了Kotlin、Spring Boot很多东西&#xff0c;感觉可以比较方便的进行开发了。今天就来回过头学习一下。 准备工作 申请公众号 首先说明一下&…

linux 监控命令free,简单了解Linux性能监控命令free

在系统遇到各种IO瓶颈&#xff0c;内存使用率高&#xff0c;cpu使用率高等问题时&#xff0c;我们如何来定位错误&#xff1f;linux提供了很多命令来协助我们快速定位到错误&#xff0c;free命令是Linux最常用的命令之一&#xff1a;它可以查看系统的内存状况&#xff0c;包括服…

Android studio之NDK integration is deprecated in the current plugin解决办法

1 、问题 编译Android项目&#xff0c;出现下面错误 NDK integration is deprecated in the current plugin 2、解决办法 在我们 gradle.properties(Project Properties) file add android.useDeprecatedNdktrue

使用 System.Net.Http.Json 简化 HttpClient 的使用

使用 System.Net.Http.Json 简化 HttpClient 的使用Intro从 .NET Core 3.1 开始&#xff0c;微软添加了一个 System.Net.Http.Json 的扩展&#xff0c;可以用来简化 HttpClient 的使用&#xff0c;看到在很多项目里还并未开始使用&#xff0c;所以想向大家介绍一下SamplePostAs…

MySQL的四种不同查询的分析

1.前置条件&#xff1a;本次是基于小数据量&#xff0c;且数据块在一个页中的最理想情况进行分析&#xff0c;可能无具体的实际意义&#xff0c;但是可以借鉴到各种复杂条件下&#xff0c;因为原理是相同的,知小见大&#xff0c;见微知著&#xff01;打开语句分析并确认是否已经…

乐观锁的概念

乐观锁&#xff1a; 大多数是基于数据版本&#xff08;version&#xff09;的记录机制实现的。即为数据增加一个版本标识&#xff0c;在基于数据库表的版本解决方案中&#xff0c;一般是通过为数据库表添加一个“version”字段开实现读取数据时&#xff0c;将此版本号一同读出&…

.NET6之MiniAPI(十八):OpenAPI swagger

从本篇开始&#xff0c;介绍一些很不错的三方库&#xff0c;来丰富MiniAPI的使用。在创建MiniAPI项目时&#xff0c;模板提供了一个是否启用OpenAPI的选项&#xff0c;足见这个三方库的优势和强大。OpenAPI为我们测试API提供了强大的支持&#xff0c;调用API的开发人员&#xf…

查看linux内存还剩多少g,Linux 查看存储空间、内存以及清除内存

查看存储空间&#xff1a;zdsubuntu ~ $ df -hl文件系统 容量 已用 可用 已用% 挂载点udev 972M 0 972M 0% /devtmpfs 199M 6.3M 192M 4% /run/dev/sda1 23G 5.3G 17G 25% /tmpfs 992M 212K 991M 1% /dev/shmtmpfs 5.0M 4.0K 5.0M 1% /run/locktmpfs 992M 0 992M 0% /sys/fs/cg…

Android之ndk-build出现c:28:51: error: ‘get_string‘ undeclared here (not in a function)解决办法

1 problem ndk-build error: get_string undeclared here (not in a function) 2 resolve jstring get_strstring(JNIEnv* env, jobject thiz) {return (*env)->NewStringUTF(env, "I am chenyu, 动态注册JNI"); }jint add_int(JNIEnv* env, jobject jobj, ji…

c/c++与java------之JNI学习(一)

一、java 调用c/c 步骤&#xff1a; 1、在java类中创建一个native关键字声明的函数 2、使用javah生成对应的.h文件 3、在c/c中实现对应的方法 4、使用vs2012创建一个win32空白项目&#xff0c;将jdk中的jni.h和jni_md.h文件拷贝到工程中&#xff0c;修改项目属性为&#xff08;…

BeetleX服务网关授权配置

很多应用服务都需要授权访问&#xff0c;为了更好地统一处理这种授权验证&#xff0c;服务网关提供了JWT验证插件用于解决这问题。网关的JWT验证插件默认是关闭的&#xff0c;只有当开启后网关才会对请求进行拦截验证处理。开启开启JWT验证需要在插件管理里开启Webapi JWT验证插…

关于Spring的事务Transactional,锁同步,并发线程

Spring事务传播机制和数据库隔离级别 在标准SQL规范中定义了4个事务隔离级别&#xff0c;不同隔离级别对事务处理不同 。 未授权读取&#xff08;Read Uncommitted&#xff09;&#xff1a; 也称 未提交读。允许脏读取但不允许更新丢失&#xff0c;如果一个事务已经开始写数据则…

linux 编译指cpu内核,linux内核编译与配置

linux是如何组成的&#xff1f;答&#xff1a;linux是由用户空间和内核空间组成的为什么要划分用户空间和内核空间&#xff1f;答&#xff1a;有关CPU体系结构&#xff0c;各处理器可以有多种模式&#xff0c;而LInux这样的划分是考虑到系统的安全性&#xff0c;比如X86可以有4…

Linux下的压缩与解压缩

tar命令zip命令unzip命令gzip命令bzip2命令tar命令&#xff1a;压缩和解压缩tar格式的文件格式&#xff1a;tar [主选项辅选项] 文件或目录【主选项告诉tar要做什么事&#xff0c;是必须要有的&#xff0c;辅选项是辅助使用的&#xff0c;和通常的选项一样&#xff0c;可选】主…

Android之JNI动态注册native方法和JNI数据简单使用

1、爆结果照片 2、介绍JNI注册方式 JVM 查找 native 方法有两种方式: 1)、按照 JNI 规范的命名规则(静态注册) 2) 、调用 JNI 提供的 RegisterNatives 函数,将本地函数注册到 JVM 中(动态注册) 静态注册的实现可以参考我的这篇博客 http://blog.csdn.net/u01…

保存现场数据和状态:onSaveInstanceState\onRestoreInstanceState\onCreate()

当某个activity变得“容易”被系统销毁时&#xff0c;该activity的onSaveInstanceState就会被执行&#xff0c;除非该activity是被用户主动销毁的&#xff0c;例如当用户按BACK键的时候。 注意上面的双引号&#xff0c;何为“容易”&#xff1f;言下之意就是该activity还没有被…

setTimeout(function(){}, 0);

1 for (var i 0; i < 3; i) { 2 setTimeout(function() { 3 console.log(i); 4 }, 0); 5 console.log(i); 6 } 结果是&#xff1a; 0 1 2 3 3 3 分析&#xff1a; 1、在实践中&#xff0c;setTimeout 会在其完成当前任何延迟事件的事件处理器的执行&am…

Linux怎么查询全部容器时间,linuxea:如何单单修改docker容器的系统时间

一般情况下&#xff0c;我们仅仅需要修改容器的时间与我们宿主机的实际实际一致即可&#xff0c;我们知道&#xff0c;默认情况下docker容器是不允许访问系统时钟&#xff0c;但是有一款开源的软件使这样的需求变成了可能。此lib拦截用于检索当前时间和日期的所有系统调用&…

关闭系统索引(转)

转自“http://jingyan.baidu.com/article/d621e8daeaaa392865913f0a.html” 关闭系统索引 Windows索引服务是为文件、电子邮件和其他内容提供内容索引、属性缓存和搜索结果。 Windows系统在安装完成后&#xff0c;会逐步创建特定文件、文件夹和其它目标的索引&#xff0c;例如开…

Android之ndk中JNIENV env->NewStringUTF (*env)->NewStringUTF

JNIEnv是指向可用JNI函数表的接口指针&#xff0c;原生代码通过JNIEnv接口指针提供的各种函数来使用虚拟机的功能。JNIEnv是一个指向线程-局部数据的指针&#xff0c;而线程-局部数据中包含指向线程表的指针。实现原生方法的函数将JNIEnv接口指针作为它们的第一个参数。 原生代…