[LeetCode]剑指 Offer 04. 二维数组中的查找
2023-09-11 14:18:49 时间
算法标签 双指针
题目简叙
思路
线行查找的思路
一行从左到右递增
一列从上到下递增
那么我们依据性质 从第0行的最右侧开始就检查
如果目标值比这个值大,那么就到下一行
如果目标值比这个值小,那么久到前一个
代码
暴力
class Solution {
public:
bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) {
if(matrix.size()==0||matrix[0].size剑指 Offer 04. 二维数组中的查找剑指 Offer 04. 二维数组中的查找剑指 Offer 04. 二维数组中的查找()==0)return false;
int n=matrix.size(),m=matrix[0].size();
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
if(matrix[i][j]==target)
return true;
return false;
}
};
线行查找
class Solution {
public:
bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) {
if(matrix.size()==0||matrix[0].size()==0)return false;
int n=matrix.size(),m=matrix[0].size();
int x=0,y=m-1;
while(x<n&&y>=0){
if(matrix[x][y]==target)return true;
if(matrix[x][y]>target)y--;
else x++;
}
return false;
}
};
相关文章
- Java实现LeetCode 5449. 检查数组对是否可以被 k 整除 (更改题意)
- Java实现 LeetCode 745 前缀和后缀搜索(使用Hash代替字典树)
- Java实现 LeetCode 689 三个无重叠子数组的最大和(换方向筛选)
- Java实现 LeetCode 648 单词替换(字典树)
- Java实现 LeetCode 912 排序数组(用数组去代替排序O(N))
- Java实现 LeetCode 561 数组拆分 I(通过排序算法改写PS:难搞)
- Java实现 LeetCode 565 数组嵌套(没有重复值的数组)
- Java实现 LeetCode 506 相对名次
- Java实现 LeetCode 421 数组中两个数的最大异或值
- Java实现 LeetCode 303 区域和检索 - 数组不可变
- Java实现 LeetCode 34 在排序数组中查找元素的第一个和最后一个位置
- [LeetCode] Linked List Cycle II
- 【二分】LeetCode 33. 搜索旋转排序数组【中等】
- LeetCode(26): 删除排序数组中的重复项
- LeetCode-66. 加一【数组,数学】
- LeetCode-1450. 在既定时间做作业的学生人数【数组,二分查找lower_bound(),upper_bound()】
- LeetCode-380. O(1) 时间插入、删除和获取随机元素【哈希表,动态数组,随机数】
- 【LeetCode 34】在排序数组中查找元素的第一个和最后一个位置
- Find Minimum in Rotated Sorted Array 旋转数组中找最小值 @LeetCode
- 【LeetCode Python实现】剑指 Offer II 038. 每日温度(中等)单调栈
- Leetcode 1394. 找出数组中的幸运数
- Leetcode 1640. 能否连接形成数组(终于解决)
- Leetcode 1550. 存在连续三个奇数的数组
- 【Leetcode刷题Python】LeetCode 478. 在圆内随机生成点
- 【LeetCode】剑指 Offer II 026. 重排链表