剑指offer第二版-4.二维数组中的查找


面试题4:二维数组中的查找

题目要求:
一个二维数组中,每一行从左到右递增,每一列从上到下递增。输入一个整数,判断数组中是否含有该整数

/**
 * @since 2019年2月13日 下午5:08:50
 * @author xuchao
 * 二维数组,从左到右递增,从上到下递增,输入一个整数,判断数组中是否含有
 * 
 * 思路:
 * 从最后一行第一列与目标值比较,若大于目标值,则行下标-1;若小于目标值,则列下标+1
 *
 */
public class P4_FindInPartiallySortedMatrix {
    
    public static boolean findInPartiallySortedMatrix(int[][] data, int target) {
        if(data==null || data.length==0 ||data[0].length==0) {
            return false;
        }
        int colMax = data[0].length - 1;
        int rowCur = data.length - 1, colCur = 0;
        while(true) {
            if (rowCur < 0 || colCur > colMax) {
                return false;
            }
            if (data[rowCur][colCur] == target) {
                return true;
            } else if (data[rowCur][colCur] > target) {
                rowCur--;
            } else {
                colCur++;
            }
        }
    }

    public static void main(String[] args) {
        int[][] data = {
                { 1, 2, 8, 9 },
                { 2, 4, 9, 12 },
                { 4, 7, 10, 13 },
                { 6, 8, 11, 15 } };
        System.out.println(findInPartiallySortedMatrix(data, 10));
        System.out.println(findInPartiallySortedMatrix(data, 5));
    }
}

优质内容筛选与推荐>>
1、霸屏天下朋友圈租赁系统开发
2、Metasploit一条龙服务
3、常见sql注入原理详解!
4、SQL常用的基础语法
5、未来医疗趋势之健康游戏化


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号