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

题目大意:

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

解题思路:

          (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;
    }
}


猜你喜欢

转载自blog.csdn.net/chaiqunxing51/article/details/52538727