剑指offer 面试题4 二维数组的查找

从左下角开始比较,如果查找数更小,则上移,若更大,则右移。
class Solution {
public:
    bool Find(int target, vector<vector<int> > array) //二维向量,连个< 之间的空格不可少,n个外层向量向量,每个向量里又
    {                                                  //存着m个int类的内层向量
        if ( array.empty())
             return false;
        int  row = array.size();    
        int  clo = array[0].size();
        int i,j;
        for ( i=row-1,j=0; i>=0 && j<clo;)  // 缺省对i,j的操作 在语句中操作。
        { if (target == array[i][j])
                return true;
            if (target < array[i][j]) 
            { i--;
                continue; 
            }
            if (target > array[i][j])
            {
                j++;
                continue;
            }
        }
        return false;
    }
}; 
从右上角开始,若查找数较小则左移,若较大,则下移。
class Solution {
public:
    bool Find(int target, vector<vector<int> > array) 
    {
        if ( array.empty())
             return false;
        int  row = array.size();
        int  clo = array[0].size();
        int i,j;
        for ( i=0,j=clo-1; i<row && j>=0; )
        { if (target == array[i][j])
                return true;
            if (target < array[i][j])
            { j--;
                continue; 
            }
            if (target > array[i][j])
            {
                i++;
                continue;
            }
        }
        return false;
    }
}; 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值