二维数组中的查找

来源:互联网 发布:鹰朗el01淘宝假货 编辑:程序博客网 时间:2024/06/05 04:21

题目描述:
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
时间限制:1秒 空间限制:32768K

思路:
矩阵是有序的,从左下角来看,向上数字递减,向右数字递增。因此从左下角开始查找,当要查找数字比左下角数字大时,右移。
要查找数字比左下角数字小时,上移。

代码实现:
运行时间:321 ms
占用内存:17924K

public class Solution {    public boolean Find(int target, int [][] array) {        int i = array.length - 1;        int j = 0;//array[i][j]为矩阵左下角的值        while(i >= 0 && j < array[0].length){            if(target == array[i][j]){                return true;            }            else if(target < array[i][j]){                i--;            }            else if(target > array[i][j]){                j++;            }        }        return false;    }}
原创粉丝点击