二维数组的查找

2018-01-03  本文已影响0人  SeanC52111

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


public class Solution {
    public static boolean Find(int target, int [][] array) {
        for(int i=0;i<array.length;i++) {
            int first = 0;
            int last = array[i].length-1;
            while(first<=last) {
                int mid = (first+last)/2;
                if(target < array[i][mid]) {
                    last = mid-1;
                }else if(target > array[i][mid]) {
                    first = mid+1;
                }else
                    return true;
            }
        }
        return false;
    }
    
    public static void main(String[] args) {
        int [][]A = {{1,2,3},{4,5,6},{7,8,9}};
        System.out.println(Find(4,A));
    }
}
public class Solution {  
    public boolean Find(int target, int [][] array) {  
    //将数据放在坐标右上角array[0][col]  
        int row=0;//行  
        int col=array[0].length-1;//列  
        while(row<=array.length-1&&col>=0){  
            if(target>array[row][col])  
                row++;//遇到大的下移  
            else if(target<array[row][col])  
                col--;//遇到小的左移  
            else  
                return true;  
        }  
        return false;  
    }  
}  
上一篇下一篇

猜你喜欢

热点阅读