二维数组中的查找

来源:互联网 发布:java安全等级设置 编辑:程序博客网 时间:2024/06/01 22:54

题目描述

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


思路:每次将二维数组矩阵的中最右上角的数字与要查找的数字比较,基于二维数组从左到右从上到下递增,那么当最右上角的数字大于目标数字就可以去掉该列,当最右边的数字小于目标数字的时候就去掉该行,如此遍历查找

public class Solution {   public  boolean Find(int target, int[][] array) {        int maxCol = 0;        for(int i=array[0].length-1; i>=0; i--) {            if(array[0][i] == target) {                return true;            }            if(array[0][i] < target) {                maxCol = i;                break;            }        }        int minRow = 0;        for(int i=0; i<array[0].length; i++) {            if(array[i][maxCol] == target) {                return true;            }            if(array[i][maxCol] > target) {                minRow = i;                break;            }        }        for(int i=minRow; i<array.length; i++) {            for(int j=0; j<maxCol; j++) {                if(target == array[i][j]) {                    return true;                }            }        }        return false;    }}
原创粉丝点击