题目描述:
?题目来源:74. 搜索二维矩阵 - 力扣(LeetCode) (leetcode-cn.com)
思路:结合一维数组的二分搜索将二维数组映射为一维数组求解
代码:
class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
//解题思路1-----将二维数组映射为一维数组-----本提交采用此方法
//解题思路2-----进行两次二分查找
//得到二维数组列元素数量
int m = matrix.length;
//得到二维数组每行元素数量
int n = matrix[0].length;
int left = 0;
int right = m*n - 1;
int mid;
while(left <= right){
mid = left + ((right-left)>>1);
//如何将一位数组映射为二维!!!!!
if(matrix[mid/n][mid%n] == target){
return true;
} else if(matrix[mid/n][mid%n] > target){
right = mid - 1;
} else{
left = mid + 1;
}
}
return false;
}
}
总结:? 通过此题,学习如何得到二维数组行数与列数,已经如何将一维数组转化为制定行数列数的二维数组
|