第三题:有序二维数组查找问题

2018-08-17  本文已影响33人  第四风111

有序二维数组查找问题

问题描述

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

解题思路

从第一行最右边的数开始比,如果比目标数小,则删除行;若等于,则返回true;若大,则删除列;

java实现

private static boolean containTarget(int[][] arr, int target) {
    // TODO Auto-generated method stub
    int col=arr[0].length-1;
    int row=0;
    while(col>=0&&row<=arr.length-1) {//arr.length为二维数组的行数
        if (arr[row][col]==target) {
            return true;
        }else if (arr[row][col]>target) {
            col--;
        }else if (arr[row][col]<target) {
            row++;
        }
    }
    return false;
}
上一篇 下一篇

猜你喜欢

热点阅读