coding•DSA & Problem Solving•Binary Search & 2D Arrays
Search a 2D Matrix Row and Column Sorted
Problem Statement
You are given an `m x n` integer matrix `matrix` with the following two properties:
1. Each row is sorted in non-decreasing order.
2. The first integer of each row is greater than the last integer of the previous row.
Given an integer `target`, return `true` if `target` is in `matrix` or `false` otherwise.
You must write a solution in `O(log(m * n))` time complexity.
### Constraints
- `m == matrix.length`
- `n == matrix[i].length`
- `1 <= m, n <= 100`
- `-10^4 <= matrix[i][j], target <= 10^4`
### Input Format
First line contains `m` and `n` space-separated.
Next `m` lines each contain `n` space-separated integers.
Last line contains the target integer.
### Output Format
Print `true` if target is found, otherwise `false`.
Sample Cases
Example 1Sample Case
Input: 3 4
1 3 5 7
10 11 16 20
23 30 34 60
3
Output: true
Example 2Sample Case
Input: 3 4
1 3 5 7
10 11 16 20
23 30 34 60
13
Output: false
Example 3Sample Case
Input: 2 3
1 3 5
7 9 11
6
Output: false
Example 4Sample Case
Input: 1 1
5
5
Output: true
Constraints
Runtime Limit: 2000 ms per test batch
Memory Limit: 256 MB
Standard I/O stream reading
Official submissions are evaluated against hidden test cases on the server to verify time & memory complexity.