标签:
Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:
For example,
Consider the following matrix:
[ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ]
Given target = 3
, return true
.
经典的二分查找的题目。
这题有个特点是每一行有序,且每一行开头数字大于上一行最后的数字,即如果按行flatten,可以拉伸成为一个有序数组。
思路: 1.先在垂直方向二分,找出行,再在行上二分找出列。复杂度O(logm+logn)2.把数组拉成一维处理(坐标处理为连续的一维),时间复杂度为O(logm*n)==O(logm+logn).
思路有了,代码简单,就不贴了。
标签:
原文地址:http://www.cnblogs.com/sherylwang/p/5786996.html