(java)二维有序数组中查找元素

    xiaoxiao2022-06-29  47

    题目大意:

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

    解题思路:

              (1)一看到有序数组就想到了二分法查找,而在这个二维数组中,无法先按行或者先按列查找

              (2)看了一下,不能从左上角和右下角开始查找和比较元素(不知道向下还是向右)

               (3)不能从中间对角线开始比较(二异性)

    正确的是:从左下角或者右上角开始比较。(例如右上角)因为这样元素大就可以向下移动元素小就可以向左移动

    代码如下:

    public class Solution { public boolean Find(int [][] array,int target) { int row=0,col=array[0].length-1; while(row<array.length && col>=0){ if(array[row][col]==target){ return true; }else if(array[row][col]<target){ row++; }else{ col--; } } return false; } }

    转载请注明原文地址: https://ju.6miu.com/read-1125532.html

    最新回复(0)