数组每行的数都是从左到右排序好的,每行的首数大于上行的尾数。在这个二维数组中搜素某一个数。
我当时看到这题时,想法是使用四次二分查找,每一次缩小搜素的矩形区域,因为以前在leecode上做的那题是行元素递增,列元素递增,这两题还是有点不一样。书中所给解法是将二维映射成一维数组A,A有m*n个元素,那么A[K]=matrix[i][j],当k=i*n+j,即i=k/n,j=k%n.然后对这个一维数组进行二分查找,O(log(m*n).
数组每行的数都是从左到右排序好的,每行的首数大于上行的尾数。在这个二维数组中搜素某一个数。
我当时看到这题时,想法是使用四次二分查找,每一次缩小搜素的矩形区域,因为以前在leecode上做的那题是行元素递增,列元素递增,这两题还是有点不一样。书中所给解法是将二维映射成一维数组A,A有m*n个元素,那么A[K]=matrix[i][j],当k=i*n+j,即i=k/n,j=k%n.然后对这个一维数组进行二分查找,O(log(m*n).