LeetCode 74——搜尋二維矩陣
1. 題目
2. 解答
- 若矩陣為空,比如 [], [[]],此時直接返回 false。
- 若目標值小於矩陣第一個元素或者大於矩陣最後一個元素,則目標值不在矩陣範圍內,直接返回 false。
- 其他情況下,則從矩陣第一行開始逐行掃描。若目標值位於矩陣某一行數值範圍內,再針對矩陣的某一行用二分查詢精準定位。
class Solution {
public:
bool binary_search(vector<int>& data, int target)
{
int left = 0;
int right = data.size() - 1;
int mid = 0;
while(left <= right)
{
mid = left + (right - left) / 2;
if (data[mid] == target)
{
return true;
}
if (data[mid] < target)
{
left = mid + 1;
}
else
{
right = mid - 1;
}
}
return false;
}
bool searchMatrix(vector< vector<int> > & matrix, int target) {
int row = matrix.size();
if (row == 0) return false; // [] 矩陣為空,直接返回
int col = matrix[0].size(); // [[]] 矩陣為空,直接返回
if (col == 0) return false;
if (target < matrix[0][0] || target > matrix[row-1][col-1]) return false; // 目標值小於第一個元素或者大於最後一個元素,直接返回
// 按照矩陣的行依次掃描
for (int i = 0; i < row; i++)
{
if (target == matrix[i][0])
{
return true;
}
else if (target == matrix[i][col-1])
{
return true;
}
else if (matrix[i][0] < target && target < matrix[i][col-1])
{
return binary_search(matrix[i], target);
}
else
{
continue;
}
}
return false;
}
};
獲取更多精彩,請關注「seniusen」!
相關文章
- 74_搜尋二維矩陣矩陣
- 74. 搜尋二維矩陣矩陣
- 240. 搜尋二維矩陣 II 和74. 搜尋二維矩陣矩陣
- leetcode240——搜尋二維矩陣(medium)LeetCode矩陣
- [Python手撕]搜尋二維矩陣Python矩陣
- LeetCodeHot100 73. 矩陣置零 54. 螺旋矩陣 48. 旋轉影像 240. 搜尋二維矩陣 IILeetCode矩陣
- LeetCodeHot100 二分查詢 35. 搜尋插入位置 74. 搜尋二維矩陣 34. 在排序陣列中查詢元素的第一個和最後一個位置 33. 搜尋旋轉排序陣列 153. 尋找旋轉排序陣列中的最小值LeetCode矩陣排序陣列
- Leetcode 演算法題解系列 - 二維陣列快速查詢元素(二叉搜尋樹)LeetCode演算法陣列
- LeetCode 33——搜尋旋轉排序陣列LeetCode排序陣列
- 二維旋轉矩陣推導矩陣
- LeetCode將有序陣列轉化為二叉搜尋樹--JavaLeetCode陣列Java
- leetcode:螺旋矩陣LeetCode矩陣
- LeetCode 81——搜尋旋轉排序陣列 IILeetCode排序陣列
- LeetCode33. 搜尋旋轉排序陣列LeetCode排序陣列
- LeetCode#33搜尋旋轉排序陣列LeetCode排序陣列
- LeetCode33 搜尋旋轉排序陣列LeetCode排序陣列
- 【LeetCode(Java) - 33】搜尋旋轉排序陣列LeetCodeJava排序陣列
- leetCode33搜尋旋轉排序陣列LeetCode排序陣列
- LeetCode 108. 將有序陣列轉換為二叉搜尋樹LeetCode陣列
- LeetCode-108-將有序陣列轉換為二叉搜尋樹LeetCode陣列
- Leetcode 700. 二叉搜尋樹中的搜尋(DAY 2)LeetCode
- 資料結構之陣列和矩陣--矩陣&不規則二維陣列資料結構陣列矩陣
- leetcode, LC68:旋轉排序陣列搜尋LeetCode排序陣列
- leetcode 700. 二叉搜尋樹中的搜尋 思考分析LeetCode
- leetcode 108.將有序陣列轉換為二叉搜尋樹 JavaLeetCode陣列Java
- LeetCode入門指南 之 二分搜尋LeetCode
- Leetcode 566.重塑矩陣LeetCode矩陣
- [Leetcode]59.螺旋矩陣ⅡLeetCode矩陣
- LeetCode 95 | 構造出所有二叉搜尋樹LeetCode
- LeetCode98. 驗證二叉搜尋樹LeetCode
- LeetCode-098-驗證二叉搜尋樹LeetCode
- LeetCode-099-恢復二叉搜尋樹LeetCode
- 【LeetCode】98. 驗證二叉搜尋樹LeetCode
- LeetCode-096-不同的二叉搜尋樹LeetCode
- LeetCode-173-二叉搜尋樹迭代器LeetCode
- 二分搜尋之搜尋陣列中目標元素的首尾下標陣列
- [leetCode]95. 不同的二叉搜尋樹 IILeetCode
- leetcode-1382. 將二叉搜尋樹變平衡LeetCode