zoukankan      html  css  js  c++  java
  • 1、数组查找比较大小

    题目描述

    在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数
    思路:
    1、首先计算数组的行和列
    2、判断数组是否为空
    3、从题设可知输入的数组每行从左到右递增,每列从从上到下递增
    如下数组所示:

    如果从第一行开始依次遍历比较,则时间复杂度大。

    所以,从最后一行第一列开始比较,如果该数值大于最后一行第一列的数,则右移依次比较,如果小于则位置移到上一行第一列,在进行比较

    class Solution {
    public:
        bool Find(int target, vector<vector<int> > array) {
            int row = (int)array.size();
            int col = (int)array[0].size();
            int i = 0;
            int j = col - 1;
            if(row==0 || col == 0)
            {
                return false;
            }
            while(i < row && j >=0)
            {
                if(target < array[i][j])
                {
                    j--;
                    continue;
                }
                else if(target > array[i][j])
                {
                    i++;
                    continue;
                }
                else{
                    return 1;
                }
            }
            return 0;
        }
    };
  • 相关阅读:
    POJ 3280 Cheapest Palindrome
    POJ 1191 棋盘分割
    POJ 1260 Pearls
    HDOJ 4731 Minimum palindrome
    2013 ACM/ICPC Asia Regional Chengdu Online 1004 Minimum palindrome
    POJ 1836 Alignment
    POJ 3267 The Cow Lexicon
    POJ 1276 Cash Machine
    POJ 1837 Balance
    HDU 4554 叛逆的小明
  • 原文地址:https://www.cnblogs.com/zhuifeng-mayi/p/10736660.html
Copyright © 2011-2022 走看看