第二章 排序 || 第18节 有序矩阵查找练习题
Posted ranjiewen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第二章 排序 || 第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
解析
- C++版
class Finder {
public:
bool findX(vector<vector<int> > mat, int n, int m, int x) {
// write code here
int col=0;
int row=n-1;
while(col<m&&row>=0)
{
if(mat[row][col]==x)
return true;
else if(mat[row][col]>x)
{
row--;
}
else
col++;
}
return false;
}
};
- Python版
# -*- coding:utf-8 -*-
class Finder:
def findX(self, mat, n, m, x):
# write code here
row=n-1
col=0
while row>=0 and col<m:
if mat[row][col]==x:
return True;
elif mat[row][col]>x:
row-=1
else:
col+=1
return False
以上是关于第二章 排序 || 第18节 有序矩阵查找练习题的主要内容,如果未能解决你的问题,请参考以下文章