題目
題目
Example:
- Input: matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3
- Output: true
Binary Search
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| class Solution: def searchMatrix(self, matrix: list[list[int]], target: int) -> bool: rows = len(matrix)
top, down = 0, rows - 1 while top <= down: middle_row = (top + down) // 2 if ( target > matrix[middle_row][-1] ): top = middle_row + 1 elif target < matrix[middle_row][0]: down = middle_row - 1 else: break
if not (top <= down): return False
l, r = 0, len(matrix[0]) - 1
while l <= r: mid = (l + r) // 2 if target > matrix[middle_row][mid]: l = mid + 1 elif target < matrix[middle_row][mid]: r = mid - 1 else: return True
return False
|
時間與空間複雜度:
Brute Force
1 2 3 4 5
| for i in range(len(matrix)): for c in matrix[i]: if c == target: return True return False
|
時間與空間複雜度:
若您覺得這篇文章對您有幫助,歡迎分享出去讓更多人看到⊂◉‿◉つ~
留言版