Problem:
Write an efficient program that searches for a value in an n x m sorted matrix. This matrix is sorted along the rows and columns.
Write an efficient program that searches for a value in an n x m sorted matrix. This matrix is sorted along the rows and columns.
Solution:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| bool find(int mat[][], int N, int target) { if (target < mat[0][0] || target > mat[N-1][N-1]) return false; int row = 0; int col = N-1; while (row <= N-1 && col >= 0) { if (mat[row][col] < target) row++; else if (mat[row][col] > target) col--; else return true; } return false;} |
No comments:
Post a Comment