278是一道很简单的题,二分查找而已。
不过它却提醒了我一个很重要的事情,数值溢出问题。
int begin, end;
乍一看 (begin + end) / 2 与 begin + (end - begin) /2 没什么区别。
可是 前者可能溢出,后者却不会溢出。
所以尽量用begin + (end - begin) /2.
由此推想, 所有的加法,减法,乘法都可能造成溢出。
有精巧的设计固然重要,可最重要的是在做数值运算时清楚数值的范围。