剑指offer第一题二维数组中的查找

大家好,博主是个东北人哈尔滨那嘎达的,在实习中吧,感觉自己学习之路贼拉长,学习又没乐趣,感觉工作中的人都感觉我都东北话好玩儿,

那我就用东北话来分享一些知识和学习成果,这样既进步又有趣,以下有什么不对的欢迎大家呲哒我。

以后每天分享两个剑指offer题目java的实现方法。。加油!

题目描述

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

基本思路,从左到右是递增,从上到下也是递增,先面这张图是例子

所以我们只要把想要查找的数字比较,从左下角开始查找,所以循环从最后一行第一个开始循环,如果等于当前值直接返回true,如果要查找的值小于当前值就向上找i--

如果要查找的值大于当前值就向右找就是i不变j++

public class Solution {
    public boolean Find(int target, int [][] array) {
      int i,j;
          int rowCount=array.length;
          int colCount=array[0].length;
               for(i=rowCount-1,j=0;i>=0&&j<colCount;)
                       {
                           if(target == array[i][j])
                               return true;
                           if(target < array[i][j])
                           {
                               i--;
                               continue;
                           }
                           if(target > array[i][j])
                           {
                               j++;
                               continue;
                           }
                       }
                       return false;
                   }
        }

欢迎大家指正,评论一起成长一起进步

猜你喜欢

转载自www.cnblogs.com/zhaokexin/p/9962897.html