01二维数组中的查找(Java)
2020-05-31 18:49
495 查看
题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
#解题思路
解题思路
该二维数组中的一个数,小于它的数一定在其左边,大于它的数一定在其下边。
从右上角开始查找,当要查找数字比右上角数字小时,左移。当要查找数字比右上角数字大时,下移。
时间复杂度 O(M + N),空间复杂度 O(1)。其中 M 为行数,N 为 列数。
Java实现
public class Solution { public boolean Find(int target, int [][] array) { if (array == null || array.length == 0 || array[0].length == 0) return false; int rows = array.length, cols = array[0].length; int r = 0, c = cols - 1; while (r < rows && c >= 0){ if (target == array[r][c]) return true; else if (target > array[r][c]) r++; else if (target < array[r][c]) c--; } return false; } }
相关文章推荐
- 01.二维数组中的查找 (Java)
- 【剑指offer-Java版】03二维数组中的查找
- 剑指offer__01__二维数组中的查找
- 剑指offer刷题之java实现的二维数组中的查找
- 在二维数组中查找(Java)
- 剑指offer算法 java实现 二维数组中的查找
- 【剑指offer——JAVA实现】二维数组中的查找
- 剑指offer算法 java实现 二维数组中的查找
- 牛客网-剑指offer-01-二维数组中的查找
- [java学习笔记]java语言基础概述之数组的定义&常见操作(遍历、排序、查找)&二维数组
- 剑指offer面试题3:二维数组中的查找 java实现
- java个人学习笔记05(进制装换+排序查找+二维数组)
- 【java】剑指offer第一题二维数组查找
- 剑指offer--二维数组查找(java)
- 二维数组中的查找(java版)
- 剑指offer编程题Java实现——面试题3二维数组中的查找
- 剑指OFFER(java)-二维数组中的查找
- 《剑指offer》牛客网java题解-二维数组中的查找
- 二维数组查找的JAVA实现
- java二维数组 初始化及使用其长度 &&二维数组中的查找 [转载]