每日一题 2019 - 04 - 09
题目:
Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:
- Integers in each row are sorted from left to right.
- The first integer of each row is greater than the last integer of the previous row.
Example 1:
1 | Input: |
Example 2:
1 | Input: |
解法:
这个题让在给定的矩阵中查找元素,矩阵每一行的元素已经从小到大排列完毕,基于这个特性就很好解决问题了,思路就是先定位到该元素应该在那一行,因为所有行的元素都是有序的,所以只要这个元素大小位于某一行的首元素和尾元素之间,那么这个元素可能在这一行;随后在这一行中使用二分查找就可以降低时间复杂度到 O(logn)
成功解决问题了。
代码:
1 | class Solution { |