Search a 2D Matrix II
2016-07-20 14:26
323 查看
Write an efficient algorithm that searches for a value in an m x
n matrix. This matrix has the following properties:
Integers in each row are sorted in ascending from left to right.
Integers in each column are sorted in ascending from top to bottom.
For example,
Consider the following matrix:
Given target =
Given target =
思路:从左下角开始search,target < value, 往上移动,target > value, 往右移动。
public class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
if(matrix == null || matrix.length == 0) return false;
int m = matrix.length; int n = matrix[0].length;
int x = m-1; int y = 0;
while(x >=0 && y<n) {
if(target < matrix[x][y]){
x--;
} else if(target > matrix[x][y]) {
y++;
} else {
return true;
}
}
return false;
}
}
n matrix. This matrix has the following properties:
Integers in each row are sorted in ascending from left to right.
Integers in each column are sorted in ascending from top to bottom.
For example,
Consider the following 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] ]
Given target =
5, return
true.
Given target =
20, return
false.
思路:从左下角开始search,target < value, 往上移动,target > value, 往右移动。
public class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
if(matrix == null || matrix.length == 0) return false;
int m = matrix.length; int n = matrix[0].length;
int x = m-1; int y = 0;
while(x >=0 && y<n) {
if(target < matrix[x][y]){
x--;
} else if(target > matrix[x][y]) {
y++;
} else {
return true;
}
}
return false;
}
}
相关文章推荐
- Java Calendar 类的时间操作
- [刷题]算法竞赛入门经典 3-10/UVa1587 3-11/UVa1588
- Oracle 找出需要回收高水位的表
- LeetCode 67. Add Binary
- Centos6.X下安装Eclipse
- 【中位数的应用】邮局设置
- 设计模式--装饰器模式
- Task Scheduling
- iterm 2 快捷键
- 缺省函数
- redis的pconnect
- Vector用法详解
- Mac终端常用命令
- Dll注入经典方法完整版
- 使用Android Studio开发调用.NET Webservice 之初体验
- 【NGUI】记录button的动态效果
- 如何看I2C的从机地址(MMA8451Q芯片为例)
- 用Xib自定义一个View
- 关于苹果推送和证书
- SVNException: svn: E175002: Connection reset