BM18 二维数组中的查找

二分查找法

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param target int整型 
     * @param array int整型二维数组 
     * @return bool布尔型
     */
    public boolean Find (int target, int[][] array) {
        // write code here
        
        //数组长度为0,没有跟目标值匹配的
        if (array.length == 0) return false;
        
        //array数组中的0下标数组长度为0,没有跟目标值匹配的
        if (array[0].length == 0) return false;

        //记录数组的长度
        int n = array.length;

        //行的长度
        int m = array[0].length;

        //从最左下角元素开始往左或往上
        for (int i = n - 1,j = 0; i >= 0 && j < m;) {

            //i和j就第一次指向为最左下角的元素
            if (array[i][j] > target) i--;
            else if (array[i][j] < target) j++;
            else return true;
        }
        return false;
    }
}

你可能感兴趣的:(二分查找/排序,数据结构)