首页 > 编程语言 > 详细

剑指offer-二维数组查找

时间:2019-12-18 22:35:59      阅读:78      评论:0      收藏:0      [点我收藏+]

题目描述:给定一个二维数组,它的每一行从左往右递增,每一列从上往下递增,在该数组中查找目标值,如果存在返回true,否则返回false。

题目解法

 1 class Solution{
 2     public boolean findTarget(int target,int[][] array){
 3         int rows = array.length;  //数组的行数
 4         int cols = array[0].length;  //数组的列数
 5         if(rows==0||cols==0) return false;
 6         for(int col=0;col<cols;col++){
 7             if(target==array[0][col]||target==array[rows-1][col])return true;
 8             else if(target>array[0][col]&&target<array[rows-1][col]){  
 9                 for(int row=1;row<rows-1;row++){
10                     if(target==array[row][col])return true;
11                 }
12             }
13         }
14         return false;
15     }
16 }

解题思路:由于是有序数组,因此数组的第一行、最后一行,第一列、最后一列构成了边界,然后可以通过target与边界值的大小关系,确定target的区间,然后在该区间遍历寻找target。

剑指offer-二维数组查找

原文:https://www.cnblogs.com/zhang-yi/p/12063948.html

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