zoukankan      html  css  js  c++  java
  • 剑指offer:二维数组查找

    题目描述

    在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
     
    这题LeetCode上刷过原题。。
    选择右上角或者左下角开始查找,因为对应的两个坐标能实现值得增加和减少,然后通过和target比较来进行移动。、
    这题我老错在坐标边界的判断,还是太菜了。
     
    class Solution {
    public:
        bool Find(int target, vector<vector<int> > array) {
            if(array.empty()) return false;
            int i = 0;
            int j = array[0].size() - 1;
            int len = array.size();
            while(i < len && j >= 0){
                if(array[i][j] < target){
                    i++;
                }else if(array[i][j] > target){
                    j--;
                }else{
                    return true;
                }
            }
            return false;
        }
    };

    还有二分查找,这个思路还是不太能第一时间想出来,就是分行二分查找

    写的有点丑不过思路好理解。。

    class Solution {
    public:
        bool Find(int target, vector<vector<int> > array) {
            if(array.empty()) return false;
            for(int i = 0; i < array.size(); i++){
                int low = 0, high = array[i].size() - 1;
                while(low <= high){
                    int mid = (low + high) / 2;
                    if(array[i][mid] > target){
                        high = mid - 1;
                        continue;
                    }
                    else if(array[i][mid] < target){
                        low = mid + 1;
                        continue;
                    }else{
                        return true;
                    }
                }
            }
            return false;
        }
    };
  • 相关阅读:
    alias这个命令还是很有用的
    为什么不推荐用破解版的winrar
    chrome headless
    关于PDF的一些书籍
    PDF的一些工具
    3DPDF是个什么东西?
    你可能不知道的pdf的功能
    为什么一些公司把dwg文件转化为pdf
    关于pdf阅读器的选择
    接外包怎么保护自己的作品
  • 原文地址:https://www.cnblogs.com/BillowJ/p/12669970.html
Copyright © 2011-2022 走看看