题解 | #二维数组中的查找#

二维数组中的查找

https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e

//这个应该是平均时间复杂度O(m+n)的吧?
class Solution {
public:
    bool Find(int target, vector<vector<int> > array) {
        int m=array.size();//行数
        int n=array[0].size();//列数
        if(m==0||n==0)return false;
        int linemax=m-1;
        for(int i=0;i<m;i++){
            if(target<array[i][0]){
                if(i==0)return false;
                else{
                    linemax=i-1;//找到target可能在的最大行数
                    break;
                }
            }
            else if(target==array[i][0]) return true;
        }
        
        int linemin=0;
        for(int i=0;i<m;i++){
            if(array[i][n-1]>target){       
                linemin=i;//找到target可能在的最小行数
                break;
            }
            else if(target==array[i][n-1]) return true;
        }
        
        for(int i=linemin;i<=linemax;i++){
            for(int j=0;j<n;j++){
                if(array[i][j]==target)return true;
            }
        }
        
        return false;
    }
};
全部评论

相关推荐

我看到好多人都在说0offer好焦虑,结果一看是投了百度快手字节啥的。好像大家都是只想通过校招进大厂,对小公司是不考虑的吗😂可是能进大厂的难道不是只有少部分人吗,真心发问
梦想是成为七海千秋:沉默的大多数吧,喜欢晒的都是能引起共鸣的大厂,找小厂的人,别人也不认识你这个小厂,就自己偷偷找了实际上大多数人哪有什么机会能找到大厂
点赞 评论 收藏
分享
白火同学:大二有这水平很牛了,可以适当对关键信息加粗一点,比如关键技术、性能指标之类的。
点赞 评论 收藏
分享
炫哥_:哥们项目描述里面vector和mysql之类的都要写吗,直接开头技术栈巴拉巴拉就行了,完全不是技术点啊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务