首页 > 编程语言 > 详细

剑指offer4. 二维数组中的查找

时间:2021-04-23 10:30:51      阅读:9      评论:0      收藏:0      [点我收藏+]

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
[
[1,2,8,9],
[2,4,9,12],
[4,7,10,13],
[6,8,11,15]
]
给定 target = 7,返回 true。

给定 target = 3,返回 false。

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

解题思路:这道题还是很容易的,我们从右上角开始遍历,如果当前元素和target相等,直接返回true,如果比target小,那target只能在下一行,此时往下遍历,如果比target大,那target只能在左边,因此向左遍历,注意我们是从右上角开始遍历的,所以我们是向下和向左推。

代码
public class Solution {
public boolean Find(int target, int [][] array) {
if(arraynull || array.length0 || array[0].length0) return false;
int row = array.length, column = array[0].length, r = 0, c = column - 1;
while(r<row && c>=0){
if(target
array[r][c]) return true;
else if(target>array[r][c]) r++;
else c--;
}
return false;
}
}

剑指offer4. 二维数组中的查找

原文:https://www.cnblogs.com/zhengxch/p/14692412.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!