剑指offer--二维数组中的查找

来源:互联网 发布:郑州大学软件学院算211 编辑:程序博客网 时间:2024/06/18 14:40

题目描述

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

分类:数组

解法1:经典问题了,每次target跟右上角的元素比较,如果和右上角元素相等,那么返回true
如果小于右上角元素,说明在下一行,如果大于右上角元素,说明在左一列
就这样不断缩小范围,直到找到或者找不到为止
[java] view plain copy
  1. public class Solution {  
  2.     public boolean Find(int [][] array,int target) {  
  3.         int n = 0;  
  4.         int m = array[0].length-1;  
  5.         while(n<array.length&&m>=0){  
  6.             if(array[n][m]==target){  
  7.                 return true;  
  8.             }else if(array[n][m]<target){  
  9.                 n++;  
  10.             }else{  
  11.                 m--;  
  12.             }  
  13.         }  
  14.         return false;  
  15.     }  
  16. }  

原文链接 http://blog.csdn.net/crazy__chen/article/details/44984927

原创粉丝点击