Leetcode74 Search a 2D Matrix + 剑指offer 二维数组查找 + Leetcode240 Search a 2D Matrix2

Leetcode74 Search a 2D Matrix + 剑指offer 二维数组查找 + Leetcode240 Search a 2D Matrix2

 
本题共2三种思路 第一种 分别对行和列使用两次二分查找: 

Leetcode74 Search a 2D Matrix + 剑指offer 二维数组查找 + Leetcode240 Search a 2D Matrix2

 

Leetcode74 Search a 2D Matrix + 剑指offer 二维数组查找 + Leetcode240 Search a 2D Matrix2

 

 

第二种  将二维数组看做一个大的一维数组使用二分,即right = row × col  需要注意的是如何处理将一位数组转换为二维数组中元素 具体见代码 

 

Leetcode74 Search a 2D Matrix + 剑指offer 二维数组查找 + Leetcode240 Search a 2D Matrix2

 

 

第三种  与右上角元素做比较 如果右上角元素大于target 则本列不参与比较。若右上角元素小于target则本行不参与比较 

Leetcode74 Search a 2D Matrix + 剑指offer 二维数组查找 + Leetcode240 Search a 2D Matrix2

 

 

 

 

接下来看240题: 

同样是给定二维矩阵 此时矩阵的排序方式如下: 

Leetcode74 Search a 2D Matrix + 剑指offer 二维数组查找 + Leetcode240 Search a 2D Matrix2

  此时只能使用方法3 

 

Leetcode74 Search a 2D Matrix + 剑指offer 二维数组查找 + Leetcode240 Search a 2D Matrix2

Leetcode74 Search a 2D Matrix + 剑指offer 二维数组查找 + Leetcode240 Search a 2D Matrix2