首页 > 代码库 > 算法--有序矩阵查找指定数
算法--有序矩阵查找指定数
第18节 有序矩阵查找练习题
现在有一个行和列都排好序的矩阵,请设计一个高效算法,快速查找矩阵中是否含有值x。
给定一个int矩阵mat,同时给定矩阵大小nxm及待查找的数x,请返回一个bool值,代表矩阵中是否存在x。所有矩阵中数字及x均为int范围内整数。保证n和m均小于等于1000。
测试样例:
[[1,2,3],[4,5,6],[7,8,9]],3,3,10
返回:false
1
import java.util.*;
2
3
public class Finder {
4
public boolean findX(int[][] mat, int n, int m, int x) {
5
int row = 0;//标记行下标
6
int col = m-1;//标记列下标
7
for(int init = mat[row][col];;){
8
if(init == x) return true;
9
else if(init > x){
10
col--;
11
if(col<0) return false;
12
else init = mat[row][col];
13
14
}
15
else{
16
row++;
17
if(row>n-1) return false;
18
else init = mat[row][col];
19
}
20
}
21
}
22
}
您的代码已保存
答案正确:恭喜!您提交的程序通过了所有的测试用例
答案正确:恭喜!您提交的程序通过了所有的测试用例
算法--有序矩阵查找指定数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。