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

二维数组中的查找

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

二维数组中的查找

1.穷举法(每行单指针)

public:
/*
形如[[1,2],[3,4]]的数组
取其列数,即第一维的size:array[0].size(),
取其行数,即整个array的size:array.size()
然后自array[0][0]遍历
*/
    bool Find(int target, vector<vector<int> > array) {
        int col=array[0].size();//矩阵列数
        int row=array.size();//矩阵行数
        if(!col||!row){return false;}
        else
        {
            for(int i=0;i<row;i++)
            {
                int j=0;
                while(array[i][j]<target)
                {
                    j++;
                }
                if(array[i][j]==target)return true;
                continue;//该行没有目标值,到下一行
            }
        }
        return false;//找不到答案
    }
};

2.二分法(每行左右指针)

class Solution {
public:
    bool Find(int target, vector<vector<int> > array) {
        int col=array[0].size();//矩阵列数
        int row=array.size();//矩阵行数
        if(!col||!row){return false;}
        else
        {
            for(int i=0;i<row;i++)
            {
                if(array[i][0]> target)return false;
                if(array[i][0]== target)return true;
                if(array[i][col-1]== target)return true;
                int low=0,high=col-1;
                int mid=(high+low)/2;
                while(low<mid)
                {
                    if(array[i][mid]==target) return true;
                    if(array[i][mid]<target)//小于目标,右移指针
                    {
                        low=mid;
                        mid=(low+high)/2;
                    }
                    else//大于目标,左移
                    {
                        high=mid;
                        mid=(low+high)/2;
                    }
                }
            }
        }
        return false;//找不到答案
    }
};
全部评论

相关推荐

11-13 20:16
已编辑
厦门理工学院 软件测试
专业嗎喽:硕佬,把学校背景放后面几段,学校背景双非还学院,让人看了就不想往下看。 把实习经历和个人奖项放前面,用数字化简述自己实习的成果和掌握的技能,比如负责项目一次通过率90%,曾4次发现项目潜在问题风险为公司减少损失等等
点赞 评论 收藏
分享
11-17 23:00
南昌大学 Java
我要娶个什么名:10元一天 0元提成😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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