1.二维数组查找

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

思路:从右上角开始向左下角延伸,大就左移一列,小就下移一行,直到找到或遍历结束。

知识点:

vector是一个十分有用的容器,是一个能够存放任意类型的动态数组,能够增加和压缩数据。

class Solution {
public:
    bool Find(int target, vector<vector<int> > array) {
        int i=0;
        int j=array[0].size()-1;//从右上角开始
        while(i<array.size()&&j>=0){          //array.size()比行最大下标多1,目的就是范围在二维表内
if(array[i][j]==target) { return true; break; //找到就提前结束 } else if(array[i][j]>target){ --j; } else ++i; } return false; } };

vector动态装载数组大小,二维向量的定义

vector<vector<int> >vv(3, vector<int>(4));          //这里,两个“>”间的空格是不可少的  

构造一个二维向量vv,它含有三个元素,每个元素含有4个int型元素的向量。

一维的大小:vec.size()

二维的行:vec.size()          注意是比行最大下标多1的

二维的列:vec[0].size()      注意是比列最大下标多1的

posted @ 2017-08-20 13:50  rOtk1992  阅读(138)  评论(0)    收藏  举报