大家好,博主是个东北人哈尔滨那嘎达的,在实习中吧,感觉自己学习之路贼拉长,学习又没乐趣,感觉工作中的人都感觉我都东北话好玩儿,
那我就用东北话来分享一些知识和学习成果,这样既进步又有趣,以下有什么不对的欢迎大家呲哒我。
以后每天分享两个剑指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; } }
欢迎大家指正,评论一起成长一起进步