美文网首页
二维数组的查找

二维数组的查找

作者: SeanC52111 | 来源:发表于2018-01-03 19:20 被阅读0次

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

    
    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;  
        }  
    }  
    

    相关文章

      网友评论

          本文标题:二维数组的查找

          本文链接:https://www.haomeiwen.com/subject/cudknxtx.html