刷书ing……

  今天仔细研读了一下二分章节,并刷完了该章节的两个问题,对二分答案认识加深。

观察二分答案模板:

while(l<r)
{
    int mid=(l+r)/2;
    if(check(mid))r=mid;
    l=mid+1;
}
return r;

while(l<r)
{
    int mid=(l+r-1)/2;
    if(check(mid))l=mid;
    r=mid-1;
}
return r;

  (最后的return建议用r,l容易造成视觉混淆是一方面,另一方面是实数域二分时精度问题上一般用r更准确(实践得之,血泪教训))

12-26 08:47
查看更多