• 剑指offer【面试题3 :二维数组中的查找】


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

    思路:想多说,在SLAM里程计代码中,比如:

    vector<int>::itrator itr = found(vec.begin(), vec.end(), element_);  //假设我们要在vec中查找 element_

    if(itr == vec.end())//如果没找到

    {

         ......

    }

     1 //题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,
     2 //                        每一列都按照从上到下递增的顺序排序。
     3 //请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
     4 
     5 // 1 2 3 4 5
     6 // 2 3
     7 // 3 4
     8 
     9 #include<vector>
    10 #include<algorithm>
    11 #include<iostream>
    12 using namespace std;
    13 
    14 bool Find(int target, vector<vector<int> > array) {
    15     bool isfound = false;
    16     for (size_t j = 0; j < array.size(); j++) // 10行
    17     {
    18         vector<int> row_j = array[j];
    19         vector<int>::iterator itr = find(row_j.begin(), row_j.end(), target);
    20         if (itr != row_j.end())// 查找元素时候,经常用到的操作
    21         {
    22             isfound = true;
    23             return isfound;
    24         }
    25     }
    26     return isfound;
    27 }
    28 int main()
    29 {
    30     vector<vector<int>> _array;
    31     for (size_t j= 0; j < 10; j++)
    32     {
    33         vector<int> temp;
    34         for (size_t i = j; i < (j + 5); i++)
    35         {
    36             temp.push_back(i);
    37             cout << i << " ";
    38         }
    39         _array.push_back(temp);
    40         cout << endl;
    41     }
    42     bool _isfound = false;
    43     _isfound = Find(13, _array);
    44     return 1;
    45 }

  • 相关阅读:
    枚举
    泛型
    装箱和拆箱
    使用TryParse()来执行数值转换
    参数数组
    checked和unchecked转换
    字符串不可变
    TCC : Tiny C Compiler (2018-2-6)
    win10 下 protobuf 与 qt
    QWebView 与Js 交互
  • 原文地址:https://www.cnblogs.com/winslam/p/9457803.html
Copyright © 2020-2023  润新知