#+ANKI_DECK: study_deck_02 * TODO 0074. Search a 2D Matrix :medium: :PROPERTIES: :NEETCODE: [[file:../../roadmap.org::*0074. Search a 2D Matrix][0074. Search a 2D Matrix]] :END: You are given an ~m x n~ integer matrix ~matrix~ with the following two properties: - Each row is sorted in non-decreasing order. - 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. *Example 1:* #+begin_src Input: matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3 Output: true #+end_src *Example 2:* #+begin_src Input: matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13 Output: false #+end_src *Constraints:* - ~m == matrix.length~ - ~n == matrix[i].length~ - ~1 <= m, n <= 100~ - ~-10^{4} <= matrix[i][j], target <= 10^{4}~ ** TODO Approach Write your approach here. ** TODO Python #+begin_src python class Solution: def searchMatrix(self, matrix: List[List[int]], target: int) -> bool: #+end_src ** TODO C++ #+begin_src cpp class Solution { public: bool searchMatrix(vector>& matrix, int target) { } }; #+end_src