剑指 Offer 04-二维数组中的查找c++
程序员文章站
2022-06-17 17:01:45
...
题目描述
解法 递增查找法
之前刚好做过LeetCode的第一题<两数之和>,发现本质上的是同一个题目,这题可以说是它的简化版本,leetcode-01-两数之和,思路就不再赘述了。
class Solution {
public:
bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) {
int i=matrix.size()-1,j=0;
while(i >= 0 && j < matrix[0].size())
{
if(matrix[i][j]>target) i--;
else if(matrix[i][j]<target) j++;
else return true;
}
return false;
}
};
时间复杂度O(M+N)
最差情况从 i = matrix.size()-1,j = 0;到i = matrix.size()-1,j = matrix.size()-1,
再从 i = maxtrix.size()-1,j = matri.size()-1到 **i = 0, j = matrix.size()-1;**刚好M+N次
空间复杂度 O(1)
上一篇: JavaScript简单实现合并两个Json对象的方法示例
下一篇: JS简单实现数组去重的方法分析
推荐阅读
-
剑指offer28:找出数组中超过一半的数字。
-
C#版剑指Offer-001二维数组中的查找
-
剑指Offer积累-JZ1-二维数组中的查找
-
剑指offer之队列中的最大值(C++/Java双重实现)
-
剑指offer之在排序数组中查找数字 I(C++/Java双重实现)
-
剑指Offer04:二维数组中的查找(Java)
-
【剑指 Offer-python】 03. 数组中重复的数字
-
leetcode中剑指offer的习题 C++语言实现(2)
-
leetcode中剑指offer的习题 C++语言实现(1)
-
剑指offer 56 数组中数字出现的次数 lintcode 82. 落单的数、83. 落单的数 II、84. 落单的数 III