博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指Offer-编程详解-二维数组中的查找
阅读量:4591 次
发布时间:2019-06-09

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

  • 题目描述

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

  • 解析

特点:横坐标递增有序,纵坐标递增有序

方法1:横坐标二分查找,纵坐标二分查找;
方法2:假设矩阵从左下角增长,则有规律:矩阵左上角的元素,递减向下,递增向右。
则:从左上角元素比较,小于target则向下移动,大于target则向右移动;

  • 代码:
public class Solution {    public boolean Find(int target, int [][] array) {        int row = array.length;// 行数        int col = array[0].length;// 列数        for (int i = row - 1, j = 0; i >= 0 && j <= col - 1;) {
// i,j只初始化一次,拿取左上角元素 if (array[i][j] == target) { return true; } else if (array[i][j] < target) { j++; } else { i--; } } return false; }}

 

转载于:https://www.cnblogs.com/gavincoder/p/10665591.html

你可能感兴趣的文章
android用户界面之Gallery3D学习资料汇总
查看>>
[编写高质量代码:改善java程序的151个建议]建议62 警惕数组的浅拷贝
查看>>
h5移动端适配iOS遇到的问题
查看>>
20. 最长公共子串(ToDo)[LCS]
查看>>
浮动:图解两栏布局
查看>>
CSS3 box-sizing 属性
查看>>
expect用法
查看>>
JavaScript [ 转 ] —— 面向对象编程(二):构造函数的继承
查看>>
$百度应用引擎BAE的使用与应用部署
查看>>
Keras入门——(6)长短期记忆网络LSTM(三)
查看>>
高效算法的常用技术(算法导论)
查看>>
TCP、UDP套接字网络协议
查看>>
STDIN_FILENO与stdin区别(转)
查看>>
页面操作postback后保持滚动条位置
查看>>
nginx动静分离小示例
查看>>
nginx socket转发设置
查看>>
centos samba搭建
查看>>
Android Studio 错误: 非法字符: '\ufeff'
查看>>
并发编程--一堆锁,GIL,同步异步,Event事件
查看>>
svn配置
查看>>