算法--有序矩阵查找指定数

Posted 日月的弯刀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法--有序矩阵查找指定数相关的知识,希望对你有一定的参考价值。

 

第18节 有序矩阵查找练习题

 

现在有一个行和列都排好序的矩阵,请设计一个高效算法,快速查找矩阵中是否含有值x。

给定一个int矩阵mat,同时给定矩阵大小nxm及待查找的数x,请返回一个bool值,代表矩阵中是否存在x。所有矩阵中数字及x均为int范围内整数。保证nm均小于等于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
}
 
 
您的代码已保存
答案正确:恭喜!您提交的程序通过了所有的测试用例

以上是关于算法--有序矩阵查找指定数的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode刷题日记精选例题(附代码及链接)

经典算法之二分查找:编写代码在一个整形有序数组中查找具体的某个数 找到了就打印数字所在的下标,找不到则输出:找不到。

排序练习题:有序矩阵查找

第二章 排序 || 第18节 有序矩阵查找练习题

百度面试——AI算法岗

Go-二分查找算法