74. Search a 2D Matrix
Problem description:
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
2
3
4
5
6
7
8Input:
matrix = [
[1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]
target = 3
Output: true
Example 2:1
2
3
4
5
6
7
8Input:
matrix = [
[1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]
target = 13
Output: false
Solution:
The idea is to think the matrix as an array.
array convert to n * m matrix => a[x] => matrix[x / m][x % m];
1 | class Solution { |
time complexity: $O(log(mn))$
space complexity: $O(1)$
reference:
https://goo.gl/FAmm72