剑指offer—二维数组中的查找
题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
左边的数比右边的小,下面的比上面的大,所以右上角查找,再把特殊情况排除。。。大了左移,小了右移。。。
public class Solution { public boolean Find(int target, int [][] array) { if (array == null || array.length == 0 || array[0].length == 0) return false; int rows = array.length, cols = array[0].length; int r = 0, c = cols - 1; // 从右上角开始 while (r <= rows - 1 && c >= 0) { if (target == array[r][c]) return true; else if (target > array[r][c]) r++; else c--; } return false; } }
成为更好的自己
posted on 2019-03-24 23:13 CodeFish-Xiao 阅读(78) 评论(0) 编辑 收藏 举报