算法太差,今天开始刷剑指offer,牛客网上的,要求不高,一天一道
题目:
- 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路:
每一行从左到右递增,每一列从上到下递增,那么选取左下数字(或者右上)为比较的起点,若是比选取的数字大则右移,比选取的数字小则上移
public boolean Find(int target, int[][] arr) {
int row = arr.length - 1;// 二维数组行数
int col = 0;
while(row >= 0 && col <= arr[0].length - 1){
if(target == arr[row][col])
return true;
else if(target > arr[row][col])
col++;
else
row--;
}
return false;
}
网友评论