1. 程式人生 > >Leetcode 74.搜索二維矩陣

Leetcode 74.搜索二維矩陣

spa 一個 == -s turn 二維矩陣 pty 高效 else

搜索二維矩陣

編寫一個高效的算法來判斷 m x n 矩陣中,是否存在一個目標值。該矩陣具有如下特性:

  • 每行中的整數從左到右按升序排列。
  • 每行的第一個整數大於前一行的最後一個整數。

示例 1:

輸入:

matrix = [

[1, 3, 5, 7],

[10, 11, 16, 20],

[23, 30, 34, 50]

]

target = 3

輸出: true

兩次二分搜索

 1 class Solution{
 2 public:
 3     bool searchMatrix(vector<vector<int>> &matrix, int
target){ 4 if (matrix.empty() || matrix[0].empty()) return false; 5 if (target<matrix[0][0] || target>matrix.back().back()) return false; 6 int left = 0, right = matrix.size() - 1; 7 while (left <= right){ 8 int mid = (left + right) / 2; 9 if
(matrix[mid][0] == target) return true; 10 else if (matrix[mid][0]<target) left = mid + 1; 11 else right = mid - 1; 12 } 13 int tmp = right; 14 left = 0; 15 right = matrix[tmp].size() - 1; 16 while (left <= right){ 17 int
mid = (left + right) / 2; 18 if (matrix[tmp][mid] == target) return true; 19 else if (matrix[tmp][mid]<target) left = mid + 1; 20 else right = mid - 1; 21 } 22 return false; 23 } 24 };

Leetcode 74.搜索二維矩陣