• 二维数组中的查找


    题目描述:

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

    基本思想:首先选取数组右上角的数字。如果该数字等于要查找的数字,查找过程结束;

             如果该数字大于要查找的数字,剔除这个数字所的列。

         如果该数字小于要查找的数字,剔除这个数字所在的行。

    #include <iostream>
    #include <algorithm>
    #include "string.h"
    #include "stdio.h"
    #include <vector>
    #include <deque>
    #include <stack>
    #include<map>
    #include<utility>
    #include "math.h"
    using namespace std;
    class Solution {
    public:
        bool Find(int target, vector<vector<int> > array) {
            if(array.size() == 0)
                return false;
            int i=0;
            int j=array[0].size()-1;
            while(i<array.size()&&j>=0)
            {
                   if(array[i][j]==target)
                    return true;
                else if(array[i][j]<target)
                   {
                    i++;
                }
                else
                {
                    j--;
                }
            }
            return false;
        }
    };
    int num;
    int target;
    int main() {
        cin >> num;
        cin >>target;
        vector<int> arr(num);
        vector<vector<int> > array(num);
    
        for(int i=0;i<num;i++)
        {
            for(int j=0;j<num;j++)
            {
                cin>>arr[j];
            }
            array[i]=arr;
        }
        for(int i=0;i<array.size();i++)
        {
            for(int j=0;j<array[0].size();j++)
            {
                cout<<array[i][j]<<" ";
            }
            cout<<endl;
        }
        Solution solution;
        bool result = solution.Find(target,array);
        cout<<"RESUL:"<<result<<endl;
        return 0;
    }
  • 相关阅读:
    数据库的复制与附加,备份与还原
    数据库类型,约束,索引,视图
    数据索引及函数
    数据库及表的操作
    SQL数据库的查询方法
    数据库(增、删、改、查)
    数据库的基础知识
    C#阶段小结
    【WinForm】创建自定义控件(转)
    C# 自定义控件制作和使用实例(winform)(转)
  • 原文地址:https://www.cnblogs.com/omelet/p/6644534.html
Copyright © 2020-2023  润新知