Leecode240. 搜索二维矩阵 II——Leecode每日一题系列
我是小張同學,立志用更簡潔的代碼做更高效的表達
編寫一個高效的算法來搜索 m x n 矩陣 matrix 中的一個目標值 target 。該矩陣具有以下特性:
每行的元素從左到右升序排列。
每列的元素從上到下升序排列。
示例 1:
輸入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5
輸出:true
示例 2:
輸入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 20
輸出:false
提示:
m == matrix.length
n == matrix[i].length
1 <= n, m <= 300
-109 <= matrix[i][j] <= 109
每行的所有元素從左到右升序排列
每列的所有元素從上到下升序排列
-109 <= target <= 109
思路:從二維數組的右上角開始查找,每次篩選掉一行或一列。
細節:這里采用變量ttt來代替matrix[i][j]matrix[i][j]matrix[i][j],目的是減少時間消耗。 經過測試,大約可以減少20ms的時間消耗。
class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int row = matrix.size(), col = matrix[0].size();int i = 0, j = col - 1;while (i < row && j >= 0) {int t = matrix[i][j];if (target == t) return true;else if (target > t) i++;else if(target < t) j--;}return false;} };總結
以上是生活随笔為你收集整理的Leecode240. 搜索二维矩阵 II——Leecode每日一题系列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leecode 9. 回文数
- 下一篇: 【通俗易懂】什么是状态机?