首页 > 其他 > 详细

【二分】出错记录

时间:2017-11-09 21:45:17      阅读:216      评论:0      收藏:0      [点我收藏+]

一、跳石子

  技术分享

无限循环了。

改为:

if (rez <= m) {
  ans = ans > rez ? rez : ans; 
  l = mid + 1;	
} else r = mid - 1;

 就跳出了循环。

技术分享 0 是输出的结果,明显错误。

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

还有ans的初值应该设为 0x7fffffff,改正后输出 1。

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

最后技术分享

  AC。

________________________________________________________________________________________________________________________

总结:

  1、

    l = mid + 1 或者 l = mid
    r = mid - 1 或者 r = mid
  写错可能导致无限循环。

   2、清楚 ans 是什么。

    ans记录的应该是什么,用不用取 min 或者 max 之类的。

 

 

 

 

【二分】出错记录

原文:http://www.cnblogs.com/ExileValley/p/7811315.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!