Write an efficient algorithm that searches for a value in an m x n
matrix. This matrix has the following properties:
Example 1:
Input: matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3 Output: true
Example 2:
Input: matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13 Output: false
Constraints:
m == matrix.length
n == matrix[i].length
1 <= m, n <= 100
-104 <= matrix[i][j], target <= 104
struct Solution;
impl Solution {
fn search_matrix(matrix: Vec<Vec<i32>>, target: i32) -> bool {
let mut a = vec![];
for row in matrix {
for x in row {
a.push(x);
}
}
a.binary_search(&target).is_ok()
}
}
#[test]
fn test() {
let matrix: Vec<Vec<i32>> = vec_vec_i32![[1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50]];
let target = 3;
let res = true;
assert_eq!(Solution::search_matrix(matrix, target), res);
}