第二章 排序 || 第18節 有序矩陣查找練習題
阿新 • • 發佈:2018-07-09
|| 練習題 == 給定 一個 同時 urn while pub
題目
現在有一個行和列都排好序的矩陣,請設計一個高效算法,快速查找矩陣中是否含有值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節 有序矩陣查找練習題