二分查找万能模板

相信大家在各处都看到了很多关于二分查找的模板,我在阅读了众多二分查找的模板后,发现了一个最好理解也是最好用的模板,原创来自于b站的五点七边,如果想要进一步了解的话可以去b站看视频,我这里就简单阐述一下思路以及举几道例题分析。

模板思路:我们可以将需要进行二分查找的数组看成一片领域,然后左右两个指针看做成两头老虎,他们要根据所给的条件不断分割这片领域,直到最后这个领域正好被分成两头老虎各自的领域。最后退出循环的时候,左老虎在自己领域的最右边,右老虎在自己领域的最左边,且它们俩彼此相邻。

        

模板写法:

//左边界值为设置为-1,右边界设置为数组的大小
int left = -1, right = nums.size();

//循环条件
while ( left + 1 != right )
{
      //二分查找的mid值
      int mid = ( left + right ) / 2;
      //更新领域,使数组最后变成左右两个领域
      if ( 左领域 )
      {
           //更新左右指针
           left = mid;
      }
      if ( 右领域 )
      {
           //更新右指针
           right = mid;
      }
}
//看要求的结果在哪个领域即返回哪个值
return left/right;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值