美文网首页
面试题4: 二维数组中的查找

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

作者: mark_x | 来源:发表于2019-10-02 23:36 被阅读0次

package cn.zxy.interview;

/**
 * 分析:
 * 如果根据固有思维, 将目标数与二维数组中间的数进行比较显然很困难, 于是选择与右上角的数比较
 * 步骤:
 * 1. 初始化行指针row=0, 列指针col=columns-1
 * 2. if(row, col)==target 结束
 * 3. if(row, col) > target 因为这个数是一列最上面的数, 如果连这个数都大于target, 那么这一列的数肯定都大于target, 所以
 *    剔除这一列, col--
 * 4. if(row, col) < target 因为这个数是一行最右边的数, 如果连这个数都小于target, 那么这一列的数肯定都小于target. 所以
 *    剔除这一行, row++
 */
public class A04_2DSearch {
    public static boolean TwoDimensionSearch(int[][] a, int rows, int columns, int target){
        boolean found = false;
        if (a == null || rows == 0 || columns == 0) return found;

        int row = 0;
        int col = columns - 1;
        while(row < rows && col >= 0){
            if (a[row][col] == target){
                found = true;
                return found;
            }else if(a[row][col] > target){
                col--;
            }else {
                row++;
            }
        }
        return found;
    }

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

}



相关文章

  • 剑指offer

    面试题3——数组中重复的数字 使用LinkedHashMap,有序存放。 面试题4——二维数组中的查找 首先选...

  • 剑指offer面试题分类总结

    数组: 面试题3:数组中重复的数字面试题4:二维数组中的查找面试题21:调整数组顺序使奇数位于偶数前面面试题39:...

  • 2.3.1 数组

    面试题3:数组中重复的数字 面试题4:二维数组中的查找 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一...

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

    本系列导航:剑指offer(第二版)java实现导航帖 面试题4:二维数组中的查找 题目要求:一个二维数组中,每一...

  • 二维数组中的查找

    《剑指offer》面试题4:二维数组中的查找 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都...

  • 剑指offer每日一更

    题目 // 面试题4:二维数组中的查找// 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按...

  • LeetCode | 面试题04. 二维数组中的查找【剑指Off

    LeetCode 面试题04. 二维数组中的查找【剑指Offer】【Easy】【Python】【数组】 问题 力扣...

  • 《剑指Offer》-Exercise(C语言)

    面试题4:二维数组中的查找 面试题6:从尾到头打印链表 单链表从尾到头打印(用栈或递归) 单链表结构 面试题7:重...

  • 剑指offer目录

    目录 面试题3 在二维数组中查找 面试题15 链表中倒数第K个数 面试题16 反转链表 面试题44 扑克牌的顺子

  • 算法题

    行列都是有序的二维数组,查找k是否存在【查找法】 二维数组中的查找(行列分别有序数组的二分查找)【递归法】 快速排...

网友评论

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

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