博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法笔记_130:行列递增矩阵的查找(Java)
阅读量:7063 次
发布时间:2019-06-28

本文共 1143 字,大约阅读时间需要 3 分钟。

目录

 


1 问题描述

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

 

 


2 解决方案

2.1定位法

下面算法的时间复杂度为O(m + n),空间复杂度为O(1)

具体代码如下:

package com.liuzhen.practice;public class Main {        public boolean YoungMatrix(int[][] A, int key) {        int i = 0, j = A[0].length - 1;        int temp = A[i][j];        while(true) {            if(temp == key) {                return true;            } else if(temp < key && i < A.length - 1) {                temp = A[++i][j];            } else if(temp > key && j > 0) {                temp = A[i][--j];            } else {                return false;            }        }    }        public static void main(String[] args) {        Main test = new Main();        int[][] A = {
{
1,2,8,9},{
2,4,9,12},{
4,7,10,13},{
6,8,11,15}}; if(test.YoungMatrix(A, 6)) System.out.println("矩阵A中包含元素6"); else System.out.println("矩阵A中不包含元素6"); if(test.YoungMatrix(A, 5)) System.out.println("矩阵A中包含元素5"); else System.out.println("矩阵A中不包含元素5"); }}

 

 运行结果:

矩阵A中包含元素6矩阵A中不包含元素5

 

 

 

参考资料:

   1.《编程之法面试和算法心得》  July

 

转载地址:http://ngnll.baihongyu.com/

你可能感兴趣的文章
科技兴国园区兴城——2019国际高科技产业园区博览会在深盛装开幕
查看>>
为什么你不能在 MySQL 3.x 版本上安装 Joomla 1.5.23
查看>>
Exchange 2013公网证书配置
查看>>
将学习进行到底!为普通人的奋斗送福
查看>>
PHPcms怎么调用二级栏目
查看>>
交换的江湖
查看>>
Docker 快速入门教程
查看>>
FTP基础知识
查看>>
web.xml中的*.jsp如果当welcome-file,eclipse在下次跑的时候不自动更新到tomcat中的问题(eclipse可以去死了)...
查看>>
NettyIO
查看>>
重写重要的库函数
查看>>
NYOJ176 整数划分(二)
查看>>
Spring IoC容器初始化过程学习
查看>>
后缀树
查看>>
Java中的代理
查看>>
顺序表的静态建立
查看>>
Java反射(Reflection)获取运行时类的结构
查看>>
来美国一年半了,命里有时终须有,命里无时莫强求(2)
查看>>
swiper轮播图(逆向自动切换类似于无限循环)
查看>>
阿里云域名解析+网站备案
查看>>