[算法]行列递增数组中查找某个元素

来源:互联网 发布:城市地图制作软件 编辑:程序博客网 时间:2024/05/20 21:58

在一个从上到下递增,从左到右递增的数列中,判断某个数是否在这个数组中。

例如:

1    2    4   7

2    3   5    8

4    5   6    9

解题思路:

从第一行的最右面开始(上面示例中的7),如果大于7则说明在第一行的下面(i++)排除7所在的行,如果小于7则说明在最后一列的左边(即j--)排除7所在的列,同时注意i,j的边界不要超范围。


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

原创粉丝点击