剑指Offer——二维数组查找

来源:互联网 发布:java电脑版86安装包 编辑:程序博客网 时间:2024/04/30 23:01
主要思路:
利用矩阵右上角的数字做判断,如果要查找的数大于该数,则去除对该行的判断,如果要查找的数小于该数,则去除对该列的查找
以下代码在vs2015中调试运行通过
#include "stdafx.h"#include <iostream>#include<vector>using namespace std;class Solution {public:bool Find(vector<vector<int>> array, int target){bool found = false;int rows = 0;int columns = (array[0].size())-1;while (rows<array.size() && columns>=0){if (target == array[rows][columns]){found = true;break;}else if (target < array[rows][columns]){--columns;}else{++rows;}}return found;}};int main(){vector<vector<int>> array = { {1,2,8,9},  {2,4,9,12},  {4,7,10,13},  {6,8,11,15} };int target = 1;Solution x;if (x.Find(array, target))cout << "true";elsecout << "false";while (1);}

0 0