class Solution:
def searchMatrix(self, matrix: [[int]], target: int) -> bool:
# its a ascending matrix,
# 1. turn into array then
# 2. apply binsearch
arr = [element for row in matrix for element in row]
l = 0
r = len(arr)
if r==1:
if target == l[0]:
return True
else: return False
while l<r:
m = (l+r)//2
if arr[m]<target:
l = m + 1
elif arr[m]>target:
r = m
else:
return True
return False
soln = Solution()
# soln.searchMatrix([[1,3,5,7],[10,11,16,20],[23,30,34,60]],3)
# soln.searchMatrix([[1,3,5,7],[10,11,16,20],[23,30,34,60]],13)
# soln.searchMatrix([[1,3]],3)
1. Problem Description
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.
2. Code
- Flatten array then
- Use code from binary search
3. Submit
