時間限制:1秒 空間限制:32768K 熱度指數(shù):827840
本題知識點: 查找
題目描述
在一個二維數(shù)組中(每個一維數(shù)組的長度相同),每一行都按照從左到右遞增的順序排序塌西,每一列都按照從上到下遞增的順序排序暑刃。請完成一個函數(shù)踏拜,輸入這樣的一個二維數(shù)組和一個整數(shù)烟央,判斷數(shù)組中是否含有該整數(shù)洼滚。
思路:
1.數(shù)組從左到右從上到下遞增察藐。
2.取數(shù)組最左下角的點皮璧。
3.如果目標值大于這個點,則向右移转培。
4.如果目標值小于這個點恶导,則向上移。
題解:
#include<vector>
using namespace std;
class Solution {
public:
bool Find(int target, vector<vector<int> > array) {
int row = array.size() - 1;
int col = 0;
while (row >= 0 && col < array[0].size()) {
if (target == array[row][col]) return true;
else if (target > array[row][col]) {
col++;
}
else {
row--;
}
}
return false;
}
};